处理某些数据时遇到问题。
我有一个如下数据框:
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
我做错了什么,该如何解决?
我比程序员更像生物学家。
答案 0 :(得分:0)
首先,检查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)