2014-11-22 88 views
-5

我想从一个数据帧读取一行并将该行数据附加到另一个数据帧的列中。尺寸是兼容的。如何做到这一点?从一个数据帧读取行并将其写入另一个列中

定义& B中3X3帧:

A <- data.frame(c(1:3),c(4:6),c(7:9)) 

A是:

c.1.3. c.4.6. c.7.9. 
1  1  4  7 
2  2  5  8 
3  3  6  9 

B <- data.frame(c(13:15),c(16:18),c(19:21)) 

B是:

c.13.15. c.16.18. c.19.21. 
1  13  16  19 
2  14  17  20 
3  15  18  21 

我想B的最后一行添加到A中的新列,以便我得到A:

1  1  4  7 15 
2  2  5  8 18 
3  3  6  9 21 

这是有效的。有更容易的方法吗?

A[, 4] <- unlist(B[3, ]) 
A[,5] <- NULL 
+0

数据框以多种语言存在。你可以说得更详细点吗?你指的是R,python还是其他的东西? – Mike 2014-11-22 21:38:57

+0

对不起,我指的是R.我正在构造一个数据框来保存来自其他数据框的结果。我有一个NXM数据框架来保存我的结果。我正在从QXN数据框中挑选一行,并且想要将该行作为列加载到我的NXM结果数据框中。我尝试了各种方案,但当我尝试将行向量作为列加载到结果数据框中时,我总是遇到错误。 – Ernie 2014-11-23 04:11:03

+0

我不需要Null赋值。在A中只能得到4列矩阵。另请参阅'A [,4] < - t(B [3,])'成功。 – 2014-11-23 18:34:24

回答

3

为什么不:

i <- sample(nrow(NXM) , 1) # pick a row, .... any row 
NXM[ , i] <- unlist(QXN[i, ] (

或者:

A[,4] <- t(B[3,]) 

还有的是,“最低的普通型分母”的各种列类型QXN将成为列的潜在下行空间键入NXM。数据帧的情况与矩阵情况会有所不同。

+0

是的,这是行不通的。我所定义的3X3数据帧A和3X3数据帧B.然后我输入: A [,4] < - B [3,] 我得到这个错误: 警告消息: 在'[< - 。.data.frame'('* TMP *',4,值=列表(c.13.15 = 15L,c.16.18 = 18L,: 提供3个变量,以取代1个变量 我甚至尝试: A [,ncol(A)+1] < - B [nrow(B),] 并得到这个错误信息: 在'[<。data.frame'('* tmp *',,ncol A)+ 1,value = list(c.13.15。= 15L,: – Ernie 2014-11-23 17:41:25

+0

)您从未提供过测试用例,可能需要将'unlist' RHS:NXM [,i] < - unlist(QXN [i,]) – 2014-11-23 17:47:59

+0

Original post has been edited。 – Ernie 2014-11-23 17:53:30

相关问题