广州建网站的公司有哪些,文化传媒有限公司 网站建设,做侵权视频网站,怎样做网站吸引人目录
一.dplyr包
1.新增变量和变量重新赋值
2.筛选行
3.筛选列
4.分组计算
5.管道操作符
6.连接数据框
二.tidyr
1.列的分裂
2.列的合并
3.宽数据转长数据
4.长数据转宽数据 一.dplyr包
1.新增变量和变量重新赋值 head(ToothGrowth)len supp dose
1 4.2 …目录
一.dplyr包
1.新增变量和变量重新赋值
2.筛选行
3.筛选列
4.分组计算
5.管道操作符
6.连接数据框
二.tidyr
1.列的分裂
2.列的合并
3.宽数据转长数据
4.长数据转宽数据 一.dplyr包
1.新增变量和变量重新赋值 head(ToothGrowth)len supp dose
1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
5 6.4 VC 0.5
6 10.0 VC 0.5ToothGrowth2-mutate(ToothGrowth,lenlen^2,nv1:nrow(ToothGrowth),
nv2ifelse(nvmedian(nv),H,L)) head(ToothGrowth2)len supp dose nv nv2
1 17.64 VC 0.5 1 L
2 132.25 VC 0.5 2 L
3 53.29 VC 0.5 3 L
4 33.64 VC 0.5 4 L
5 40.96 VC 0.5 5 L
6 100.00 VC 0.5 6 L
2.筛选行 ToothGrowth3-filter(ToothGrowth2,nv %in% 1:50,nv2H) head(ToothGrowth3)len supp dose nv nv2
1 231.04 OJ 0.5 31 H
2 462.25 OJ 0.5 32 H
3 309.76 OJ 0.5 33 H
4 94.09 OJ 0.5 34 H
5 210.25 OJ 0.5 35 H
6 100.00 OJ 0.5 36 H
3.筛选列
#只显示第二列和第四列的数据
ToothGrowth4 - select(ToothGrowth3,c(2,4))4.分组计算 summarise(ToothGrowth,len_maxmax(len))len_max
1 33.9
#会按照supp进行分组summarise(group_by(ToothGrowth,supp),len_maxmax(len))
# A tibble: 2 × 2supp len_maxfct dbl
1 OJ 30.9
2 VC 33.9summarise(group_by(ToothGrowth,dose),len_maxmax(len))
# A tibble: 3 × 2dose len_maxdbl dbl
1 0.5 21.5
2 1 27.3
3 2 33.9summarise(group_by(ToothGrowth,dose,supp),len_maxmax(len))
summarise() has grouped output by dose. You can override using the .groups
argument.
# A tibble: 6 × 3
# Groups: dose [3]dose supp len_maxdbl fct dbl
1 0.5 OJ 21.5
2 0.5 VC 11.5
3 1 OJ 27.3
4 1 VC 22.5
5 2 OJ 30.9
6 2 VC 33.9
5.管道操作符 library(magrittr)
#将左边的参数作为右边参数的第一个参数ToothGrowth %%mutate(nv1:nrow(ToothGrowth))%%filter(nv %in% 1:50)%%select(1:2) %%group_by(supp)%%summarise(len_maxmax(len))%%as.data.frame()6.连接数据框 df1-data.frame(c12:5,c2LETTERS[2:5])df1c1 c2
1 2 B
2 3 C
3 4 D
4 5 Edf2-data.frame(c3LETTERS[c(2:3,20:23)],c4sample(1:100,size6))df2c3 c4
1 B 62
2 C 20
3 T 29
4 U 42
5 V 60
6 W 65
#left_join(df1,df2,byc(c2c3)):df1左连接于df2 df1 %% left_join(df2,byc(c2c3))c1 c2 c4
1 2 B 62
2 3 C 20
3 4 D NA
4 5 E NAdf1 %% right_join(df2,byc(c2c3))c1 c2 c4
1 2 B 62
2 3 C 20
3 NA T 29
4 NA U 42
5 NA V 60
6 NA W 65df1 %% full_join(df2,byc(c2c3))c1 c2 c4
1 2 B 62
2 3 C 20
3 4 D NA
4 5 E NA
5 NA T 29
6 NA U 42
7 NA V 60
8 NA W 65df1 %% inner_join(df2,byc(c2c3))c1 c2 c4
1 2 B 62
2 3 C 20 二.tidyr
1.列的分裂 library(tidyr)df3-data.frame(c5paste(letters[1:3],1:3,sep-),c6paste(letters[1:3],1:3,sep.),c4c(B,B,B),c3c(H,M,L))df3c5 c6 c4 c3
1 a-1 a.1 B H
2 b-2 b.2 B M
3 c-3 c.3 B Ldf4-df3%%separate(colc5,sep-,intoc(c7,c8),removeF)%%separate(colc6,sep\\.,intoc(c9,c10),removeT)
#\\表示转义字符df4c5 c7 c8 c9 c10 c4 c3
1 a-1 a 1 a 1 B H
2 b-2 b 2 b 2 B M
3 c-3 c 3 c 3 B L
2.列的合并 df4%%
#remove表示将原来操作的列保留下来unite(colc11,c(c7,c8),sep_,removeF)%%unite(colc12,c(c9,c10),sep.,removeT)c5 c11 c7 c8 c12 c4 c3
1 a-1 a_1 a 1 a.1 B H
2 b-2 b_2 b 2 b.2 B M
3 c-3 c_3 c 3 c.3 B L 个人以为以下两个函数特别重要特别有用特别是在绘制线性图的时候 宽数据列数变多了names_from表示列名的来源value_from(),表示列值来源 从长数据到宽数据为from 长数据行数变多了names_to表示列名加入到行中的去向value_from(),表示列值加入到行中的去向从宽数据到长数据为to 3.宽数据转长数据 set.seed(42)df5-data.frame(timerep(2011:2013,each3),arearep(letters[1:3],times3),popsample(100:1000,9),denround(rnorm(9,mean3,sd0.1),2),mjsample(8:12,9,replace T))
#replaceT,有放回的取df5time area pop den mj
1 2011 a 660 2.99 12
2 2011 b 420 3.15 12
3 2011 c 252 2.99 11
4 2012 a 173 3.20 9
5 2012 b 327 2.99 11
6 2012 c 245 3.13 10
7 2013 a 733 3.23 9
8 2013 b 148 2.86 8
9 2013 c 227 2.97 9 df6-df5%%
#将最后三列数据合并为一列pivot_longer(cols-c(1:2),
#列名称names_tovarb,
#列值values_tovalue)df6
# A tibble: 27 × 4time area varb valueint chr chr dbl1 2011 a pop 660 2 2011 a den 2.993 2011 a mj 12 4 2011 b pop 420 5 2011 b den 3.156 2011 b mj 12 7 2011 c pop 252 8 2011 c den 2.999 2011 c mj 11
10 2012 a pop 173
# ℹ 17 more rows
# ℹ Use print(n ...) to see more rows4.长数据转宽数据 df6%%pivot_wider(names_fromc(area,varb),values_from value)
# A tibble: 3 × 10time a_pop a_den a_mj b_pop b_den b_mj c_pop c_den c_mjint dbl dbl dbl dbl dbl dbl dbl dbl dbl
1 2011 660 2.99 12 420 3.15 12 252 2.99 11
2 2012 173 3.2 9 327 2.99 11 245 3.13 10
3 2013 733 3.23 9 148 2.86 8 227 2.97 9