【问题标题】:Read row from one dataframe and write it to the column of another [closed]从一个数据帧读取行并将其写入另一个数据帧的列[关闭]
【发布时间】:2015-01-20 20:45:13
【问题描述】:

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

将 A 和 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

【问题讨论】:

  • 数据框以多种语言存在。你可以说得更详细点吗?您指的是 R、python 还是其他东西?
  • 对不起,我指的是 R。我正在构建一个数据框来保存来自其他数据框的结果。我有一个 NXM 数据框来保存我的结果。我从 QXN 数据框中选择一行,我想将此行作为一列加载到我的 NXM 结果数据框中。我尝试了各种方案,但是当我尝试将行向量作为列加载到结果数据框中时总是出错。
  • 我不需要 Null 分配。只在A中得到一个4列矩阵。还看到A[,4] &lt;- t(B[3,])成功了。

标签: r dataframe


【解决方案1】:

为什么不:

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

或者:

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

QXN 的各种列类型的“最低公用类型分母”可能会成为NXM 中的列类型。数据框的情况与矩阵的情况有些不同。

【讨论】:

  • 是的,这行不通。我定义了一个 3X3 数据帧 A 和一个 3X3 数据帧 B。然后我输入:A[, 4] [<-.data.frame(*tmp*, , 4, value = list(c.13.15. = 15L, c.16.18. = 18L, : 提供了 3 个变量来替换我什至尝试过的 1 个变量:A[,ncol(A)+1][<-.data.frame(*tmp*, , ncol(A) + 1, value = list(c.13.15. = 15L, :
  • 您从未提供过测试用例。您可能需要将 unlist 包裹在 RHS 周围:NXM[ , i]
  • 原帖已被编辑。
  • 添加 unlist 会在 A 框架中提供两个新列,一个是 15、18、21,下一个新列 (#5) 是 15、15、15
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多