如何重复数据框的一列,并按行将其与R中的另一个数据框连接起来?
假设我们有一个包含5列的数据帧df1,另一个包含仅列的数据帧df2,但两个数据帧中列的数据类型相同。现在,我们可能想通过创建与第一个数据帧中相同的列数,从第一个数据帧的行的末尾开始添加第二个数据帧的列。研究人员可能需要这样做,以了解外部变量对分析结果的影响,并且可以借助智能函数来完成。
请看以下数据帧-
示例
set.seed(259) x1<-sample(0:9,20,replace=TRUE) x2<-sample(1:10,20,replace=TRUE) x3<-sample(11:20,20,replace=TRUE) x4<-sample(16:20,20,replace=TRUE) x5<-sample(41:50,20,replace=TRUE) df1<-data.frame(x1,x2,x3,x4,x5) df1
输出结果
x1 x2 x3 x4 x5 1 3 2 19 16 41 2 8 3 14 17 47 3 6 10 13 17 50 4 1 10 18 20 50 5 5 5 13 18 49 6 3 10 13 19 48 7 3 8 13 16 48 8 8 1 15 17 49 9 9 6 13 16 50 10 7 5 19 19 43 11 3 10 12 17 42 12 4 5 17 18 47 13 7 9 13 19 48 14 8 5 11 19 41 15 3 1 19 18 50 16 9 2 16 17 41 17 0 5 17 19 42 18 2 7 11 17 42 19 3 1 14 18 41 20 1 2 19 18 47
示例
x1<-sample(0:50,20) df2<-data.frame(x1) df2
输出结果
x1 1 45 2 25 3 24 4 46 5 32 6 3 7 30 8 6 9 14 10 36 11 1 12 34 13 47 14 9 15 22 16 21 17 16 18 44 19 31 20 26
通过将df2的列重复到df1中的列数来将df2列与df1连接-
示例
data.frame(sapply(df1,c,unlist(df2)),row.names=NULL)
输出结果
x1 x2 x3 x4 x5 1 9 4 12 16 48 2 2 9 16 19 47 3 6 7 17 17 46 4 1 8 17 16 44 5 3 8 12 18 44 6 4 8 16 20 42 7 6 3 13 17 41 8 0 3 18 18 43 9 8 9 11 17 46 10 4 9 14 16 44 11 2 3 20 18 44 12 9 3 11 20 45 13 4 1 12 17 42 14 6 8 11 17 47 15 3 8 20 18 47 16 8 8 12 20 43 17 5 4 18 18 48 18 4 4 15 16 43 19 9 7 11 17 50 20 2 7 11 20 44 21 34 34 34 34 34 22 8 8 8 8 8 23 30 30 30 30 30 24 6 6 6 6 6 25 12 12 12 12 12 26 7 7 7 7 7 27 36 36 36 36 36 28 31 31 31 31 31 29 44 44 44 44 44 30 24 24 24 24 24 31 26 26 26 26 26 32 22 22 22 22 22 33 14 14 14 14 14 34 2 2 2 2 2 35 33 33 33 33 33 36 9 9 9 9 9 37 15 15 15 15 15 38 11 11 11 11 11 39 19 19 19 19 19 40 32 32 32 32 32