计算每个列变量的相对丰度

时间:2019-07-05 22:21:05

标签: r dataframe count relative

如何计算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

1 个答案:

答案 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