使用dplyr包对表格整理

2020-09-15 14:49:02 浏览数 (2)

R自带的对数据框添加新的行或列函数为cbind()和rbind(),对应于dplyr包的bind_cols()和bind_rows()。使用这两个函数要求数据能很好的对应。

构建数据框

代码语言:javascript复制
> df1<-data.frame(x=c("a","b","c"),y=1:3)
> df2<-data.frame(z=c("B","D","H"),g=c(2,5,3))
> df3<-data.frame(x=c("g","b"),y=c(2,5))

代码语言:javascript复制
> df1
  x y
1 a 1
2 b 2
3 c 3
代码语言:javascript复制
> df2
  z g
1 B 2
2 D 5
3 H 3
代码语言:javascript复制
> df3
  x y
1 g 2
2 b 5

按行合并

代码语言:javascript复制
df_rbind<-bind_rows(df1,df3)
代码语言:javascript复制
> df_rbind
  x y
1 a 1
2 b 2
3 c 3
4 g 2
5 b 5

按列合并

代码语言:javascript复制
> df_colbind<-bind_cols(df1,df2)
> df_colbind
  x y z g
1 a 1 B 2
2 b 2 D 5
3 c 3 H 3

bind_rows/bind_cols()还可以合并列表

前提是两个列表结构一样,比如按行bind则要求列数一样。

代码语言:javascript复制
 f<-split(starwars, starwars$homeworld)   #得到一系列列表

代码语言:javascript复制
bind_rows(f)   合并list

0 人点赞