r - R为数据框列表创建一个循环
问题描述
我目前有一个由大约 80 多个数据框组成的列表,我想做的是为列表中的每个单独的数据框循环一段代码,而不是单独命名每个数据框,或者将它们拆分为单独的数据要处理的框架。
目前,我使用以下代码将列表拆分为每个单独的数据框:
dat5split <- setNames(split(dat5, dat5$CODE), paste0("df", unique(dat5$CODE)))
list2env(dat5split, globalenv())
然后,我分别处理每个数据框:
# call in SPC function and write to 'results10000'
results10000<-SPC_XBAR(df10000,vol_n,seasonality)
results10000 = results10000 %>%
cbind(Spec = df10000$CODE) %>%
subset(`table_n` == 1)
results10000 <- results10000[order(results10000$tpd),]
results10000$Date <- as.Date(cbind(Date = df10000$CENSUS_DATE))
# call in SPC function and write to 'results10001'
results10001<-SPC_XBAR(df10001,vol_n,seasonality)
results10001 = results10001 %>%
cbind(Spec = df10001$CODE) %>%
subset(`table_n` == 1)
results10001 <- results10001[order(results10001$tpd),]
results10001$Date <- as.Date(cbind(Date = df10001$CENSUS_DATE))
目前,我将函数“SPC_XBAR”调用到代码中前面设置 vol_n 和季节性的位置。然后脚本将值传递给函数,然后将结果分配给'results10000,results10001'等。在此基础上,我对每个新创建的数据帧进行少量数据整理,然后将结果反馈回sql server .
正如你所看到的,每一个都是单独硬编码的,效率不高。
我想做的是为列表中的每个单独的数据框循环一段代码,而不是单独命名每个数据框。
我相信循环可以解决这个问题,但是在围绕它创建循环的能力方面我有点缺乏经验。任何建议将不胜感激。
干杯
解决方案
您是否考虑lapply
过在整个列表中使用而不是循环?在这里检查...
编辑:我尝试详细说明......如果你这样做会发生什么:
myFunction <- function(x) {
results<-SPC_XBAR(x,vol_n,seasonality)
results = results %>%
cbind(Spec = x$CODE) %>%
subset(`table_n` == 1)
results <- results[order(results$tpd),]
results$Date <- as.Date(cbind(Date = x$CENSUS_DATE))
results
}
lapply(dat5split, myFunction)
我希望它返回结果数据集的列表
推荐阅读
- android - 在 ARCore Android 中将对象放在摄像头前面
- java - 如何解决 init 方法调用失败:java.lang.AbstractMethodError
- python - 在将数据输入 svm 之前,我可以对我的数据(0-1 个特征 + tfidf 分数作为特征)尝试哪些降维技术
- kubernetes - 使用 istio 或其他 sidecar 代理的延迟惩罚
- mysql - 跨大量行运行 SUM
- python-2.7 - 如何使用 python-jenkins 检索 jenkins 作业的最后一个控制台输出?
- python - 有没有办法在窗口中居中画布小部件?
- android - 如何获取谷歌热图点击监听器?
- java - 如何读取输出文件以收集统计信息(后)处理
- kubernetes - 卷“config-volume”的 Minikube MountVolume 失败