我有一个数据帧列表,并为列表中的每个元素(例如每个数据帧)指定了一个名称:

例如

df1 <- data.frame(x = c(1:5), y = c(11:15))
df2 <- data.frame(x = c(1:5), y = c(11:15))
mylist <- list(A = df1, B = df2)

我有一个要应用于每个数据框的功能;在此函数中,我想添加一行以将结果写入文件中(最终,我想做更复杂的事情,例如为每个数据帧保存两个变量之间的相关性的绘图,但以为我会从简单开始)

例如
NewVar <- function(mydata, whichVar, i) {
mydata$newVar <- mydata[, whichVar] + 1
write.csv(mydata, file = i)
}

我想使用lapply()将此功能应用于列表中的每个数据框

就像是:
hh<-lapply(mylist, NewVar, whichVar = "y")

我无法弄清楚如何在lapply上下文中分配“i”,以便i遍历数据帧列表中的名称,保存多个具有不同名称的文件(在这种情况下,两个文件名为AB)与修改后的数据帧相对应。

最佳答案

它将与以下lapply调用一起使用:

lapply(names(mylist), function(x) NewVar(mylist[[x]], "y", x))

09-03 18:06
查看更多