【发布时间】:2021-11-12 14:32:45
【问题描述】:
我想用 2 个列表进行迭代。
对于单个案例,我有一个数据框df1 和一个向量v1。
我的可重现示例如下。
df1 <- data.frame(n1 = c(2,2,0),
n2 = c(2,1,1),
n3 = c(0,1,1),
n4 = c(0,1,1))
v1 <- c(1,2,3)
现在,我使用此代码为每一行计算一个值 (ses.value)
x <- (v1 - apply(df1, 1, mean))/apply(df1,1,sd)
假设我们将有一个多个数据帧列表l1 和一个向量列表l2(每个列表具有相同数量的元素)现在,我想使用上面的方法为这些列表运行一个循环代码(l1的元素必须与l2的元素同位)。
# 3 dataframes and 3 vectors
df1 <- data.frame(n1 = c(2,2,0), n2 = c(2,1,1), n3 = c(0,1,1), n4 = c(0,1,1))
df2 <- data.frame(n1 = c(1,6,0), n2 = c(2,1,8), n3 = c(0,2,1), n4 = c(0,7,1))
df3 <- data.frame(n1 = c(1,6,0), n2 = c(9,1,5), n3 = c(4,2,1), n4 = c(0,7,2))
v1 <- c(1,2,3)
v2 <- c(2,3,4)
v3 <- c(4,5,6)
# list
l1 <- list(df1,df2,df3)
l2 <- list(v1,v2,v3)
由于我的列表太大,使用for loop 可能不是一个好主意,有什么建议使用lapply 或类似的吗?
【问题讨论】: