我的数据如下所示:
sample start end gene coverage
X 1 10 A 5
X 11 20 A 10
Y 1 10 A 5
Y 11 20 A 10
X 1 10 B 5
X 11 20 B 10
Y 1 10 B 5
Y 11 20 B 10
我添加了额外的列:
data$length <- (data$end - data$start + 1)
data$ct_lt <- (data$length * data$coverage)
我使用 dcast 重新格式化了我的数据:
casted <- dcast(data, gene ~ sample, value.var = "coverage", fun.aggregate = mean)
所以我的新数据如下所示:
gene X Y
A 10.00000 10.00000
B 38.33333 38.33333
这是我想要的正确数据格式,但我想以不同的方式进行 fun.aggregate。相反,我想取一个加权平均值,覆盖率按长度加权:
(总和(ct_lt))/(总和(长度))
我该怎么做呢?