【问题标题】:Inserting values dynamically in a column of a data frame created in a for loop在 for 循环中创建的数据框的列中动态插入值
【发布时间】:2021-11-24 23:59:26
【问题描述】:

我想知道如何在这样的 for 循环中创建的数据框的列中动态插入值:

v = 1:10

for (i in v) {
  dataFrameMio[i] = data.frame(i)
}

上面的代码是错误的;我需要创建一个包含单个列的数据框,例如“prova”,这些列中的值应该是 i 的值。

【问题讨论】:

  • 目前尚不清楚您实际想要实现什么,以及您的实际用例是否需要循环。不过,试试这个v = 1:10 dataFrameMio = data.frame() for (i in v) { dataFrameMio[i, "prova"] = i }
  • 你好@Quixotic22 完美,这就是我要找的。需要 for 循环,因为我使用的代码我不知道列的值的数量,所以我必须使用 for 循环动态插入它们,其中有一个 if 语句。

标签: r dataframe for-loop


【解决方案1】:

也许你不需要循环,这能解决你的问题吗?

vectorValues=rnorm(6,10,1)
df=data.frame(prova=vectorValues)

如果向量值是在循环中强制创建的,那么您可以尝试。
1- 首先创建一个具有预期矢量大小的空数据框。
2- 然后是每次迭代的数据框。

#1- Empty data-frame
vectorSize=6
df=data.frame(prova=rep(NA,vectorSize))

#2- Fill the empty data-frame within a loop
for(i in 1:length(vectorValues)){
  randomValue=rnorm(1,10,1)
  df$prova[i]=randomValue
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2021-02-12
    相关资源
    最近更新 更多