转载:
http://www.cdadata.com/13112
R语言中的数据合并函数(merge,cbind和rbind)的使用
r语言 cdadata 1年前 (2017-02-15) 5824℃
R语言中的数据合并函数(merge,cbind和rbind)的使用—R语言中用cbind() 和rbind() 构建分块矩阵
关键词:R语言cbind和rbind、rbind cbind、r语言矩阵、r语言 cbind、r语言 rbind
1.merge函数
两个数据框拥有相同的时间或观测值,但这些列却不尽相同。处理的办法就是使用
merge(x, y ,by.x = ,by.y = ,all = ) 函数。
#merge/合并
ID<-c(1,2,3,4)
name<-c(“A”,”B”,”C”,”D”)
score<-c(60,70,80,90)
student1<-data.frame(ID,name)
student2<-data.frame(ID,score)
total_student1<-merge(student1,student2,by=”ID”)
total_student1
当我们需要将相同的观测对象得出的不同类型变量合并时,则采用cbind,也就是合并columm。
2.cbind函数/横向追加
ID<-c(1,2,3,4)
name<-c(“A”,”B”,”C”,”D”)
score<-c(60,70,80,90)
sex<-c(“M”,”F”,”M”,”M”)
student1<-data.frame(ID,name)
student2<-data.frame(score,sex)
total_student2<-cbind(student1,student2)
total_student2
当我们需要将不同的观测对象,相同的观测变量合并时,则采用rbind,也就是合并row。
3.rbind函数/纵向追加
ID<-c(1,2,3,4)
name<-c(“A”,”B”,”C”,”D”)
student1<-data.frame(ID,name)
ID<-c(5,6,7,8)
name<-c(“E”,”F”,”G”,”H”)
student2<-data.frame(ID,name)
total_student3<-rbind(student1,student2)
total_student3
R语言中用cbind() 和rbind() 构建分块矩阵
用cbind() 和rbind() 构建分块矩阵
正如前面所暗示的,可以利用函数cbind() 和rbind() 把向量和矩阵拼成一个新
的矩阵。概略地说,cbind() 把矩阵横向合并成一个大矩阵(列方式),而rbind()
是纵向合并(行方式)。
在命令中
> X <- cbind(arg 1 , arg 2 , arg 3 , …)
cbind() 的参数要么是任何长度的向量,要么是列长度一致的的矩阵(即行数一
样)。结果将是一个合并arg1 , arg2 , . . . 的列形成的矩阵。
如果cbind() 的参数中有一些比其他矩阵参数的列长度短的向量,它们将会被循
环使用以吻合矩阵的列长度(在没有矩阵的情况下,吻合其中最长向量的长度)。
函数rbind() 对行进行类似的操作。其中任何向量参数都会被当作行向量且可能
被循环使用。
假定X1 和X2 有一样的行数。下面的命令会把它们的列合并以得到矩阵X,同时要
求起始列都是1
> X <- cbind(1, X1, X2)
rbind() 或者cbind() 返回值常常是矩阵形式。因此,cbind(x) 和rbind(x) 可
能是把向量x 分别转换成列或者行矩阵最简单的方法。