我有一个包含n个元素的列表(list1)。 list1的每个元素都是数据框(df1, df2, ..., dfn
),列数不同(也可能相同)。
让我的元素(数据框)dfi具有列名x1,x2,x3,....,xi
。
我想用列名粘贴这样的公式:
x1+x2+x3+......+xi.
并将此公式指定为列表(list2)的元素。
我想对list1中的每个数据帧进行此操作。
如何使用R执行此操作?我会很高兴得到任何帮助。非常感谢。
Ex:让list1有两个元素(两个数据帧:df1和df2)
list1[[1]]:
df1:
x1 x2 x3
-- -- --
43 12 7
3 6 5
和
list1[[2]]:
df2:
x1 x2
-- --
21 45
14 16
我想返回list2,即:
list2[[1]]:
x1+x2+x3
和
list2[[2]]:
x1+x2
我对数据框的元素(df1和df2)不感兴趣,只对列名称感兴趣。
答案 0 :(得分:2)
从我对你的问题的理解,这可能为你做的工作?
list2 <- lapply(list1, function(x) { return(paste(names(x), collapse = "+")) })
答案 1 :(得分:0)
这是否符合您的要求:
list2 <- lapply(list1, function(x){apply(x, 1, sum)})
?
答案 2 :(得分:0)
我最近尝试过类似的事情。我没有一个优雅的解决方案,但只有在所有数据帧中有相同数量的列时,以下内容才有效。
length_list <- length(list1)
cols_in_df <- ncol(list[[i]])
i = 1
for(i in 1:length_list)
{
assign(model[i], lm( list[[i]][1]+ list[[i]][2]+ ....+list[[i]][cols_in_df])
}