【发布时间】:2021-01-09 22:08:53
【问题描述】:
我对 R 比较陌生,并且一直在此论坛中搜索示例。虽然我找到了一些类似的问题和答案,但我似乎仍然无法让我的代码工作。
我想在 R 中使用 for 循环来创建一系列新数据帧,这些数据帧将 i 的临时值合并到新数据帧的名称中。我有以下代码,我想在其中创建两个新数据框:metrics_2013 和 metrics_2014。我有一些计算(变异和过滤)要应用于新的数据帧,但为了简单起见,我将其排除在外。
yearlist <- as.list(c(2013, 2014))
metrics_ <- data.frame(matrix(ncol = 4, nrow = 0))
for (i in yearlist) {
maxyear <- i
minyear <- maxyear - 7
metrics_[as.character(i)] <- mutatedata %>%
group_by(symbol) %>%
filter(year>=minyear & year<=maxyear) %>%
summarize(
avgroepercent = mean(roe,na.rm = TRUE),
avgrocpercent = mean(roc, na.rm = TRUE),
epsroc = (((last(eps))/(first(eps)))^(1/(maxyear-minyear))-1)
)
}
在这种情况下,两个数据帧(对于 2013 年和 2014 年)都将等于“数据”,因为我目前遇到的所有问题是创建名称基于 i 值的数据帧。我相信它可能与[],vs [[]]有关,或者我需要在for循环之前定义metrics_[i]???但非常感谢任何帮助!!!
【问题讨论】: