我正在尝试用lapply替换R中的for循环。
Table <- c("Filepath1","Filepath2")
Conditions c<- c("Yes","No")
for (i in 1:length(Table)){
Df[[i]] <- readxl::read_xlsx(Table[i])
Df[[i]]$Condition <- Conditions[i]
}
因此,这将获取Table中的第一个元素,将其读入R,然后将一个列添加到与Condition中第一个元素相对应的表中。
使用lapply我可以通过以下方式添加表格:
lapply(Table, readxl::read_xlsx)
我可以说:
Df[[1]]$Conditions <- Conditions[1]
Df[[2]]$Conditions <- Conditions[2]
但是如何在不使用for循环的情况下添加此额外的列?
答案 0 :(得分:2)
您可以使用mapply
遍历两个对象(表和条件)。未经测试:
mapply(FUN = function(tbl, cnd) {
out <- readxl::read_excel(tbl)
out$Condition <- cnd
out
}, tbl = Table, cnd = Conditions)