r - 在 R 中创建具有不同名称的数据帧的循环
问题描述
我正在运行一些模拟,并且在执行一个循环时遇到问题,该循环提取列表中包含的大量数据帧列,然后对其进行转换。特别是,我不知道如何为每一列创建一个新的数据框,因为代码没有将“i”作为数据框名称。这是一个可重现的示例:
#libraries
library(dplyr)
library(tidyr)
library(ggfan)
#Create a dataframe
month <- 1:120
price_a <- 5000
demand <- 10
data <- data.frame(month, price_a, demand)
#Create 100 simulations
simulations <- 100
intervalo <- seq_len(120)
set.seed(96)
lista_meses <- lapply(setNames(intervalo, paste0("data", intervalo)), function(i) {
cbind(
data[rep(i, simulations),],
growth_pricea = as.numeric(runif(simulations, min = -0.02, max = 0.05)),
growth_demand = as.numeric(runif(simulations, min = -0.03, max = 0.03)),
revenue = demand*price_a
)
})
time <- 1:120
#Loop to extract each column and transform it HERE IS THE PROBLEM
column_names <- c("growth_pricea", "growth_demand", "revenue")
for (i in column_names) {
extract_i <- lapply(lista_meses, function(x) x[i]) #As I name each new dataframe with _i, it does not create one per column
fandataq_i <- do.call("cbind", extract_i)
mandataq_i <- as.matrix.data.frame(fandataq_i)
pdataq_i <- data.frame(x=time, t(fandataq_i)) %>% gather(key=sim, value=y, -x)
#Extract quantile vlues
label_i <- calc_quantiles(pdataq_i, intervals = c(0.95, 0), x_var = "x", y_var = "y") %>%
ungroup() %>%
filter(x == max(x))
}
有人知道如何为每一列创建这些数据框吗?预先感谢!
解决方案
推荐阅读
- ubuntu-18.04 - Conky:写入错误:错误的文件描述符
- ruby-on-rails - Rails 自动加载 has_one 关系
- android - Android Studio - 自定义 ListView 崩溃应用
- html - 如何使用引导程序 4 将背景图像添加到行
- c# - 带有类参数的 WPF 绑定标签内容
- user-interface - 可以在 Flutter 中将文本刻入按钮
- eclipse - Eclipse CDT 将头文件中的外部“C”标记为语法错误
- javascript - 如何跟踪用户在组件上停留的时间
- javascript - 在 Python 中使用 Splice 移动函数
- django - Django 日期验证,需要帮助