【问题标题】:Performing the same calculation over multiple dataframes with a for loop or function使用 for 循环或函数对多个数据帧执行相同的计算
【发布时间】:2022-06-24 00:08:15
【问题描述】:
我试图弄清楚如何在一个数据帧中同时为多个数据帧执行相同的计算。我正在使用来自多个数据源的 56 个不同的数据框,这些数据框具有所有相同的列名。
我想做一个非常简单的列计算,像下面这个。
df1
df2
df1$CF
df2$CF
现在,我必须对 df1 到 df56 执行此操作,只需将这两列简单相乘即可。
要手动执行此操作,需要花费大量时间,我很确定能够使用 for 循环或函数命令同时为多个数据帧执行此操作,但我无法找到明确的指令。希望你们中的一个可以帮助我!
【问题讨论】:
标签:
r
dataframe
function
for-loop
【解决方案1】:
如果有多个数据集,请将它们放在 list 中,然后通过循环 list 在 list 中进行计算
lst1 <- lapply(list(df1, df2), transform, CF = EF * FF)
如果创建的对象名称具有模式,即 df1、df2、...df56 和 mget 和 paste 或 mget 和 ls(pattern = '^df\\d+$'),则将它们放在 list 中会很容易
lst1 <- lapply(mget(paste0('df', 1:56)), transform, CF = EF * FF)