【发布时间】:2018-09-20 08:44:34
【问题描述】:
我有一个具有重复行名但值不同的数据集,我需要对它们进行平均但无法做到。 我的表类似于以下
Genes S1 S2 S3 S4 S5 S6
EST01 0 1 5 7 0 0
EST01 1 1 0 9 2 0
EST05 8 0 1 0 1 3
EST70 4 3 0 0 0 0
EST05 5 1 3 6 0 3
EST11 6 8 0 2 0 3
EST01 4 0 2 4 5 1
我需要获取与“基因”列中重复行相对应的所有第 1、2、3、4、5 和 6 列的平均值。
我遵循了 StackOverflow 中的代码:
head(Gene_IDs)
keys <- colnames(Gene_IDs)[!grepl('1', colnames(Gene_IDs))]
X <- as.data.table(Gene_IDs)
X[,list(mm= mean(1)),keys]
X[,lapply(.SD,mean),keys] -> agg
head(agg)
但我的决赛桌仍然包含重复的内容,我不知道该怎么办。 任何帮助表示赞赏。谢谢!
【问题讨论】:
-
您知道这段代码显然来自使用
data.table包的源吗?如果是这样,您应该包含library(data.table)和创建该数据对象的代码。 -
检查您的
keys是否包含预期的列(基因?),如果没有,请以不同的方式构建它。 -
如果您可以将此作为可重现的示例(例如,我们不必创建您的数据结构)并提供您的代码生成的示例以及理想情况下的示例,将会很有帮助喜欢看作为输出。谢谢:)
标签: r duplicates