【发布时间】:2020-06-29 15:21:29
【问题描述】:
我从一个大型数据框开始。我想把它分成更小的数据框。我创建了一个函数来循环执行此操作
这是R中的函数代码
getPortfolios <- function(n) {
i = 1
listofdfs <- list()
for (i in 1:n) {
df <- data.frame(subset(df_log_returns, mdy(row.names(df_log_returns)) >= var$var[i] & mdy(row.names(df_log_returns)) <= var$var[i]))
listofdfs[[i]] <- list(df)
}
return(listofdfs)
}
当我运行 getPortfolio(1) 并调用 listofdfs[1] 时,我收到错误 Error: object 'listofdfs' not found
当我将其作为一个简单的循环运行时,这尤其令人费解:
listofdfs <- list()
n <- 16
for (i in 1:n) {
df <- data.frame(subset(df_log_returns, mdy(row.names(df_log_returns)) >= var$var[i] & mdy(row.names(df_log_returns)) <= var$var[i]))
listofdfs[[i]] <- df
}
listofdfs可以叫...hmmmmm好不解...
【问题讨论】:
-
listofdfs 仅存在于函数范围内,而不是您的全局环境,这与第二个代码块不同。你为什么要注释掉
return行?通常,您会调用:listofdfs <- getPortfolio(1) -
啊....我想我说错了...我评论说 return out bc 我正在玩弄发生了什么...
标签: r list dataframe for-loop subset