我在处理一些数据时遇到了问题。
我有一个数据框如下:
Chrom Avg_Coverage
1000568 21.88194
1000568 1.25642
1000568 1.22052
1000568 1.04954
1000568 0.81894
1000568 0.12160
1000568 0.00000
1000568 0.00000
1000568 0.00000
我试图得到所有那些相同的值的Avg_Coverage
总和,所以我使用以下代码来做到这一点:
df[] <- lapply(df, function(x) type.convert(as.character(x)))
df_result=aggregate(. ~Chrom, df, sum)
(来自In aggregate: sum not meaningful for factors,因为我的数据是因素)
没有错误,但结果不正确,请参阅:
Chrom Avg_Coverage
1000568 10400
我做错了什么,我怎么能解决这个问题?
我更像是一名生物学家,而不是一名程序员。
首先,检查data.frame中的数据类型:
str(df)
Chrom
是什么并不重要,但你希望Avg_Coverage
是数字(或双)。如果str
报告Avg_Coverage
是一个因子,那么使用此代码将其转换为数字
df$Avg_Coverage <- as.numeric(as.character(df$Avg_Coverage))
然后得到你的总和:
aggregate(Avg_Coverage ~ Chrom, df, sum)