繁体   English   中英

合并具有相同名称R的列

[英]Merge columns with the same name R

我对R相当陌生。我正在使用一个数据集,该数据集具有很多列(〜400个),具有令人难以置信的冗余性。 有几个重复的列名,但是数据不是重复的,因此在折叠它们时我需要对这些列进行求和。

所有列都有类似的名称,可以轻松识别,因此我希望可以利用它来发挥自己的优势。

我尝试执行以下操作:

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

如果我在仅包含整数的列的范围内求和,这是可行的,但问题是其他列中都有字符串,例如此类,因此rowSums会抛出适合值。

假设标识符为“ XXX”,我该如何汇总所有具有相同名称的列,而将其他列保持原样?

感谢您的时间。

编辑:已请求示例数据,由于敏感,我无法提供确切的数据,但我将举一个示例:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM