學(xué)習(xí)小組Day 6筆記-K-molar

一、初步認(rèn)識(shí)tidyr包

1.首先安裝tidyr包

install.package("tidyr")

2.初步了解tidyr包的知識(shí)

必應(yīng)搜索tidyr撕氧,找到相關(guān)介紹tidyr包的知識(shí)(https://tidyr.tidyverse.org/, https://www.r-bloggers.com/data-manipulation-with-tidyr/)
tidyr包中主要涉及:

1)缺失值的簡(jiǎn)單補(bǔ)齊

2)長(zhǎng)形表變寬形表與寬形表變長(zhǎng)形表

3)列分割與列合并

二瘤缩、初步應(yīng)用tidyr包

1.缺失值的簡(jiǎn)單補(bǔ)齊


> library(tidyr)#加載包
> library(dplyr)#加載包

載入程輯包:‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union

> #創(chuàng)建含有缺失值的數(shù)據(jù)框示例
> x <- c(1,2,7,8,NA,10,22,NA,15)
> y <-c('a',NA,'b',NA,'b','a','a','b','a')
> df <- data.frame(x = x, y = y)
> df
   x    y
1  1    a
2  2 <NA>
3  7    b
4  8 <NA>
5 NA    b
6 10    a
7 22    a
8 NA    b
9 15    a
> drop_na(df)
   x y
1  1 a
3  7 b
6 10 a
7 22 a
9 15 a
> x <- c(1,2,7,8,NA,10,22,NA,15)
> y <-c('a',NA,'b',NA,'b','a','a','b','a')
> df <- data.frame(x = x, y = y)
> df
   x    y
1  1    a
2  2 <NA>
3  7    b
4  8 <NA>
5 NA    b
6 10    a
7 22    a
8 NA    b
9 15    a
> fill(df)#根據(jù)上一行的數(shù)值填充
   x    y
1  1    a
2  2 <NA>
3  7    b
4  8 <NA>
5 NA    b
6 10    a
7 22    a
8 NA    b
9 15    a
> fill(df,c(x,y))#根據(jù)上一行的數(shù)值填充
   x y
1  1 a
2  2 a
3  7 b
4  8 b
5  8 b
6 10 a
7 22 a
8 22 b
9 15 a
> replace_na(df,list(x=2,y=b))#空值填進(jìn)去特定的一個(gè)數(shù)值
Error in is_list(replace) : object 'b' not found
> replace_na(df,list(c(x=2,y=b))#空值填進(jìn)去特定的一個(gè)數(shù)值
+ )
Error: unexpected input in:
"replace_na(df,list(c(x=2,y=b))#空值填進(jìn)去特定的一個(gè)數(shù)值
?
> replace_na(df,list(c(x=2,y=b)))#空值填進(jìn)去特定的一個(gè)數(shù)值
Error in is_list(replace) : object 'b' not found
> replace_na(df,list(x=2)#空值填進(jìn)去特定的一個(gè)數(shù)值
+ )
   x    y
1  1    a
2  2 <NA>
3  7    b
4  8 <NA>
5  2    b
6 10    a
7 22    a
8  2    b
9 15    a
> replace_na(df,list(y=b))#空值填進(jìn)去特定的一個(gè)數(shù)值
Error in is_list(replace) : object 'b' not found
> replace_na(df,list(y="b"))#空值填進(jìn)去特定的一個(gè)數(shù)值
   x y
1  1 a
2  2 b
3  7 b
4  8 b
5 NA b
6 10 a
7 22 a
8 NA b
9 15 a
> x <- c(1,2,7,8,NA,10,22,NA,15)
> y <-c('a',NA,'b',NA,'b','a','a','b','a')
> df <- data.frame(x = x, y = y)
> replace_na(df,list(x=2,y="b"))#空值填進(jìn)去特定的一個(gè)數(shù)值
   x y
1  1 a
2  2 b
3  7 b
4  8 b
5  2 b
6 10 a
7 22 a
8  2 b
9 15 a
> x <- c(1,2,7,8,NA,10,22,NA,15)
> y <-c('a',NA,'b',NA,'b','a','a','b','a')
> df <- data.frame(x = x, y = y)
> df
   x    y
1  1    a
2  2 <NA>
3  7    b
4  8 <NA>
5 NA    b
6 10    a
7 22    a
8 NA    b
9 15    a
> #計(jì)算x的均值和中位數(shù)
> x_mean <- mean(df$x, na.rm = TRUE)
> x_mean
[1] 9.285714
> #計(jì)算y的眾數(shù)
> y_mode <- as.character(df$y[which.max(table(df$y))])
> y_mode
[1] "a"
> table(df$y)

a b 
4 3 
> which.max(table(df$y))
a 
1 
> f$y[which.max(table(df$y))]
Error: object 'f' not found
> df$y[which.max(table(df$y))]
[1] a
Levels: a b
> #替換數(shù)據(jù)框df中x和y的缺失值
> df2 <- replace_na(data = df, replace = list(x = x_mean, y = y_mode))
> df2
          x y
1  1.000000 a
2  2.000000 a
3  7.000000 b
4  8.000000 a
5  9.285714 b
6 10.000000 a
7 22.000000 a
8  9.285714 b
9 15.000000 a

2.長(zhǎng)形表變寬形表與寬形表變長(zhǎng)形表

> #長(zhǎng)形表
> name <- c('A','A','A','B','B')
> product <- c('P1','P2','P3','P1','P4')
> price <- c(100,130,55,100,78)
> df_long <- data.frame(name = name, product = product, price = price)
> df_long
  name product price
1    A      P1   100
2    A      P2   130
3    A      P3    55
4    B      P1   100
5    B      P4    78
> #寬形表
> name <- c('A','B','C')
> gender <- c('f','f','m')
> province <- c('JS','SH','HN')
> age <- c(18,22,19)
> df_wide <- data.frame(name = name, gender = gender, province = province, age = age)
> df_wide
  name gender province age
1    A      f       JS  18
2    B      f       SH  22
3    C      m       HN  19
> #使用spread()函數(shù)實(shí)現(xiàn)長(zhǎng)表轉(zhuǎn)寬表,語(yǔ)法如下
> #spread(data, key, value, fill = NA, convert = FALSE, drop = TRUE)
> #data:為需要轉(zhuǎn)換的長(zhǎng)形表
> #key:需要將變量值拓展為字段的變量
> #value:需要分散的值
> #fill:對(duì)于缺失值伦泥,可將fill的值賦值給被轉(zhuǎn)型后的缺失值
> df_long_expand <- spread(data = df_long, key = product, value = price)
> df_long_expand
  name  P1  P2 P3 P4
1    A 100 130 55 NA
2    B 100  NA NA 78
> #使用gather()函數(shù)實(shí)現(xiàn)寬表轉(zhuǎn)長(zhǎng)表剥啤,語(yǔ)法如下:
> #gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)
> #data:需要被轉(zhuǎn)換的寬形表
> #key:將原數(shù)據(jù)框中的所有列賦給一個(gè)新變量key
> #value:將原數(shù)據(jù)框中的所有值賦給一個(gè)新變量value
> #...:可以指定哪些列聚到一列中
> #na.rm:是否刪除缺失值
> df_wide_gather <- gather(data = df_wide, key = variable, value = value)
Warning message:
attributes are not identical across measure variables;
they will be dropped 
> df_wide_gather
   variable value
1      name     A
2      name     B
3      name     C
4    gender     f
5    gender     f
6    gender     m
7  province    JS
8  province    SH
9  province    HN
10      age    18
11      age    22
12      age    19

3.列分割與列合并

> id <- c(1,2)
> datetime <- c(as.POSIXlt('2015-12-31 13:23:44'), as.POSIXlt('2016-01-28 21:14:12'))
> df <- data.frame(id = id, datetime = datetime)
> df
  id            datetime
1  1 2015-12-31 13:23:44
2  2 2016-01-28 21:14:12
> #將日期時(shí)間數(shù)據(jù)切割為日期和時(shí)間兩列
> separate <- df %>% separate(., col = datetime, into = c('date', 'time'), sep = ' ', remove = FALSE)
> separate
  id            datetime       date     time
1  1 2015-12-31 13:23:44 2015-12-31 13:23:44
2  2 2016-01-28 21:14:12 2016-01-28 21:14:12
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市不脯,隨后出現(xiàn)的幾起案子府怯,更是在濱河造成了極大的恐慌,老刑警劉巖防楷,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牺丙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡复局,警方通過(guò)查閱死者的電腦和手機(jī)冲簿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)亿昏,“玉大人峦剔,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵梗劫,是天一觀的道長(zhǎng)肿孵。 經(jīng)常有香客問(wèn)我恰聘,道長(zhǎng)峦耘,這世上最難降的妖魔是什么夭委? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任肉康,我火速辦了婚禮平道,結(jié)果婚禮上睹欲,老公的妹妹穿的比我還像新娘。我一直安慰自己一屋,他們只是感情好窘疮,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著冀墨,像睡著了一般闸衫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诽嘉,一...
    開(kāi)封第一講書(shū)人閱讀 48,954評(píng)論 1 283
  • 那天蔚出,我揣著相機(jī)與錄音,去河邊找鬼虫腋。 笑死骄酗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的悦冀。 我是一名探鬼主播趋翻,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼盒蟆!你這毒婦竟也來(lái)了踏烙?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茁影,失蹤者是張志新(化名)和其女友劉穎宙帝,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體募闲,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡步脓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浩螺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靴患。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖要出,靈堂內(nèi)的尸體忽然破棺而出鸳君,到底是詐尸還是另有隱情,我是刑警寧澤患蹂,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布或颊,位于F島的核電站砸紊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏囱挑。R本人自食惡果不足惜醉顽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望平挑。 院中可真熱鬧游添,春花似錦、人聲如沸通熄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)唇辨。三九已至廊酣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赏枚,已是汗流浹背啰扛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嗡贺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓鞍帝,卻偏偏與公主長(zhǎng)得像诫睬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帕涌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 今天是最后一天了摄凡,看看了任務(wù)不輕松呀,加快速度搞定蚓曼,善始善終亲澡。 今天的學(xué)習(xí)任務(wù)是學(xué)習(xí)一個(gè)R包的安裝和簡(jiǎn)單應(yīng)用(筆記...
    丹keepbetter閱讀 391評(píng)論 2 1
  • (以下內(nèi)容引用于生信星球) 學(xué)習(xí)內(nèi)容 第一個(gè)R包--tidyr 準(zhǔn)備工作: 1.1. 學(xué)會(huì)獲取一個(gè)R包的小抄 方法...
    Hocchan_7閱讀 742評(píng)論 0 50
  • 今天下午幫奧迪一起抬缸蓋鏈條斷里面了剛開(kāi)始是排氣凸輪軸螺絲松了老是缺缸把正時(shí)對(duì)好后又把四個(gè)凸輪軸鏈輪都給緊好了裝好...
    京心達(dá)侯天祥閱讀 214評(píng)論 0 0
  • 最近和朋友閑聊床绪,發(fā)現(xiàn)「喪」已經(jīng)成了一種普遍感受:欲望低、情緒低其弊、想得而不可得癞己、找尋不到意義和價(jià)值。 既然普遍梭伐,那一...
    人間的黃昏閱讀 192評(píng)論 0 1
  • 第一時(shí)痹雅,①晨起,十念法糊识,愿以此功德绩社,莊嚴(yán)佛凈土………給我們的生命定性摔蓝,今天所遇到的一切都是光明吉祥的………②不論街...
    王滌飛閱讀 127評(píng)論 0 0