在 Dataframe R 中存储 for 循环的输出
Store output of for loops in Dataframe R
我正在尝试将两个 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" 的值,但循环应存储所有四个列表的结果。
有谁知道错误在哪里,我只是无法弄清楚。提前致谢
你的下一行有错误(它只迭代一次,值为 4 ):
for (i in length(comp)){
那一行应该是:
for (i in 1:length(comp)){
我正在尝试将两个 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" 的值,但循环应存储所有四个列表的结果。 有谁知道错误在哪里,我只是无法弄清楚。提前致谢
你的下一行有错误(它只迭代一次,值为 4 ):
for (i in length(comp)){
那一行应该是:
for (i in 1:length(comp)){