【问题标题】:Store output of for loops in Dataframe R [closed]在Dataframe R中存储for循环的输出[关闭]
【发布时间】:2017-12-27 10:33:24
【问题描述】:

我正在尝试将两个 for 循环的结果存储在一个数据框中。

    comp <- c(mp, ct, n158, out)
    df <- data.frame()
    for (i in length(comp)){
      lst <- comp[i]
      d <- data.frame()
      for (t in seq(1, sapply(lst, length))){
        ob <- sapply(lst, function(m) m[t] ) 
        dt <- train_data[(train_data$ADDR_POSTALCODE == as.numeric(ob)),]
        dt$AREA <- names(lst)
        d <- rbind(d, dt)
      }
      df <- rbind(df, d)
    }

在我的代码中,d 和 df 包含相同的值,因为第一个循环的结果没有连接。 Comp 是 4 个列表

List of 4
 $ MP    : num [1:3] 94107 94110 94114
 $ Center: num [1:3] 94102 941103 941104
 $ 158   : num 94158
 $ Outer : num [1:4] 94112 94122 94132 94143

Df 只包含最后一个列表“outer”的值,但循环应该存储所有四个列表的结果。 有谁知道错误在哪里,我只是想不通。提前致谢

【问题讨论】:

  • 请提供一个可重现的例子(使用dput)

标签: r for-loop dataframe rbind


【解决方案1】:

您在下面的行中有一个错误(它只迭代一次,值为 4 ):

for (i in length(comp)){

那一行应该是:

for (i in 1:length(comp)){

【讨论】:

    猜你喜欢
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 2017-12-18
    • 2021-10-30
    • 2016-08-21
    • 2021-09-12
    • 1970-01-01
    相关资源
    最近更新 更多