合并具有相同名称R

时间:2016-08-04 21:50:44

标签: r

我对R来说相当新。我正在处理一个数据集,这个数据集非常多,有很多列(~400)。有几个重复的列名称,但数据不重复,因此我需要在折叠时对列进行求和。

这些列都有一个类似的名称,可以轻松识别,所以我希望我可以利用它。

我试图执行以下操作:

ColNames <- unique(colnames(df))
CombinedDf <- data.frame(sapply(ColNames, function(i)rowSums(Test[,ColNames==i, drop=FALSE])))

如果我对仅包含整数的列的范围进行求和,这是有效的,但问题是其他列中包含字符串等,因此rowSums会抛出拟合。

假设标识符为&#34; XXX&#34;,如何汇总所有同名列,其他列保持不变?

感谢您的时间。

编辑:已经要求提供样本数据,我无法提供准确的数据,因为它很敏感,但我会举个例子:

Name    COL1XXX    COL2XXX    COL1XXX    COL3XXX    COL2XXX   Type
Henry   5          15         25         31         1         Orange
Tom     8          16         12         4          3         Green

应该返回

Name    COL1XXX   COL2XXX   COL3XXX    Type
Henry   30        16        31         Orange
Tom     20        19        4          Green

1 个答案:

答案 0 :(得分:1)

我不确定,但您可以尝试转置数据,然后按唯一名称进行汇总。

t_df=as.data.frame(t(df))

new_df=aggregate(t_df, by=list(rownames(t_df)),sum)

同样,如果没有样本数据,我不确定它是否有效,但根据您的说法,这可能有效。