从data.frame的列名粘贴列

时间:2016-03-30 18:28:39

标签: r

我有一个包含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)不感兴趣,只对列名称感兴趣。

3 个答案:

答案 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])
}