【问题标题】:How do I assign values to multiple columns in a dataframe by row?如何按行将值分配给数据框中的多个列?
【发布时间】:2017-03-09 20:10:26
【问题描述】:
animals <- data.frame(matrix(NA,nrow=2,ncol=3))
animals[,c("X1","X2","X3")] <- append(rep("puppies",3),rep("kittens",3))

我希望它在第一排填充小猫小狗,在第二排填充小猫。我知道我可以在矩阵和 cbind 中使用 byrow,但是数据框是否允许这种填充方式?

【问题讨论】:

  • @HubertL 这只是一个例子,我正在做的实际返回是一个长向量,我希望该向量按行而不是按列应用。现在我的工作是按行将向量分配给矩阵,然后 cbind 到数据帧。如果可能的话,我只想避免这一步。
  • 如果您使用animals[,c("X1","X2","X3")] &lt;- matrix(append(rep("puppies",3),rep("kittens",3)),ncol=3, byrow = TRUE),则不需要cbind
  • 太棒了,谢谢!我没有意识到我可以从矩阵中填充数据框。

标签: r


【解决方案1】:

这将起作用:

animals[,c("X1","X2","X3")] <- rep(c("puppies","kittens"),3)

【讨论】:

  • 我打字时应该不那么懒惰。我试图只获得一个向量输出来填充行,所以实际使用的向量更像是 c("puppies","puppies","puppies","kittens","kittens","kittens")。
猜你喜欢
  • 2023-03-20
  • 2016-05-20
  • 1970-01-01
  • 2021-10-21
  • 2018-12-05
  • 2014-10-09
  • 1970-01-01
  • 2020-05-18
  • 2016-09-26
相关资源
最近更新 更多