我对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
答案 0 :(得分:1)
我不确定,但您可以尝试转置数据,然后按唯一名称进行汇总。
t_df=as.data.frame(t(df))
new_df=aggregate(t_df, by=list(rownames(t_df)),sum)
同样,如果没有样本数据,我不确定它是否有效,但根据您的说法,这可能有效。