如何计算R中每个样本的每个变量的相对丰度?然后,我想在每列中创建一个相对丰度的新数据框吗?我有1000个变量(列)和500个样本(行)。我也有每个样本的总数。
ID var1 var2 var3 etc. total count
1 10 57 16 400
2 8 66 34 412
3 7 88 57 405
4 1 90 94 402
5 20 44 33 488
etc.
Expected output:
ID var1 var2 var3 etc.
1 0.03 0.14 0.04
2 0.02 0.16 0.08
etc
答案 0 :(得分:1)
您可以通过简单的for
循环来解决此问题:
df <- data.frame(
id = 1:5,
var1 = c(10,8,7,1,20),
var2 = c(57,66,88,90,44),
var3 = c(16,34,57,94,33),
total_count = c(400,412,405,402,488)
)
abundance <- df
for (i in 2:(ncol(df) - 1)) {
abundance[i] <- abundance[i] / abundance$total_count
}
abundance