在Dataframe R中存储for循环的输出[关闭]

问题描述 投票:0回答:1

我试图在数据帧中存储两个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”的值,但循环应存储所有四个列表的结果。有谁知道错误在哪里,我只是想不出来。提前致谢

r for-loop dataframe rbind
1个回答
1
投票

你的下一行有一个错误(它的值只有一次迭代一次):

for (i in length(comp)){

该行应该是:

for (i in 1:length(comp)){
© www.soinside.com 2019 - 2024. All rights reserved.