【问题标题】:How do I add a new column to a dataframe after each for loop?如何在每个 for 循环之后向数据框添加新列?
【发布时间】:2016-11-08 16:03:40
【问题描述】:

我正在尝试保存在 for 循环中计算的数字向量,然后在 for 循环结束时将其保存到数据框中的新列中。

d.dataframe = NULL
for (i in 1:length(viral_raw)) {

  scores <- PWMscoreStartingAt(human.pwm, viral_raw[[i]], starting.at = 1:99)

  d.dataframe$i <-scores
}

但现在它每次都会覆盖第 i 列

【问题讨论】:

  • 删除d.dataframe$i行,然后添加d.dataframe=cbind(d.dataframe,scores)
  • @User7598 效果很好!谢谢!
  • 太棒了 - 刚刚添加为答案
  • 仅供参考,d.dataframe$i &lt;-scores 不会覆盖第 i 列,它会在每次迭代中覆盖名为“i”的列。请参阅来自help("$") 的帮助文件中的“递归(类似列表)对象”部分,尽管整个帮助文件都值得仔细阅读。

标签: r dataframe


【解决方案1】:

正如我上面评论的,你应该删除d.dataframe$i这一行,然后添加d.dataframe=cbind(d.dataframe,scores)

最终代码如下所示:

d.dataframe = NULL
for (i in 1:length(viral_raw)) {

  scores <- PWMscoreStartingAt(human.pwm, viral_raw[[i]], starting.at = 1:99)

  d.dataframe=cbind(d.dataframe,scores)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-13
    • 2022-01-14
    • 2021-02-02
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多