首页 > 解决方案 > R:根据日期从现有的较大数据帧创建子集/较小数据帧列表的函数

问题描述

我从一个大数据框开始。我想把它分成更小的数据框。我创建了一个函数来循环执行此操作

这是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好费解……

标签: rlistdataframefor-loopsubset

解决方案


你应该使用

listofdfs <- getPortfolio(*)`

代替

getPortfolio(*)

推荐阅读