使用 R 中的 lapply() 对列表中的所有帧执行数据帧计算 [重复]
Posted
技术标签:
【中文标题】使用 R 中的 lapply() 对列表中的所有帧执行数据帧计算 [重复]【英文标题】:Performing data frame calculation on all frames in a list using lapply() in R [duplicate] 【发布时间】:2022-01-14 13:14:02 【问题描述】:我正在研究一种适用于单个数据框的计算:
df <- data.frame(A = c(9,0),
B = c(10,1),
C = c(6,2),
D = c(9,3),
E = c(14, 4),
F = c(10, 3))
for (i in 1:ncol(df))
if (i == 1)df[3:4,1] <- c(0,df[1,1])
else
df[3,i] <- df[4,i-1]
df[4,i] <- sum(df[4,i-1], df[1,i]) - df[2,i]
df
# A B C D E F
#1 9 10 6 9 14 10
#2 0 1 2 3 4 3
#3 0 9 18 22 28 38
#4 9 18 22 28 38 45
如果我有一个数据框列表,我将如何进行相同的计算?
【问题讨论】:
见list-of-frames。 【参考方案1】:将其包装在一个函数中,并使用lapply
应用于data.frames 的list
f1 <- function(df)
for (i in 1:ncol(df))
if (i == 1)df[3:4,1] <- c(0,df[1,1])
else
df[3,i] <- df[4,i-1]
df[4,i] <- sum(df[4,i-1], df[1,i]) - df[2,i]
df
-在列表上应用函数
lapply(lst1, f1)
【讨论】:
以上是关于使用 R 中的 lapply() 对列表中的所有帧执行数据帧计算 [重复]的主要内容,如果未能解决你的问题,请参考以下文章