gpt4 book ai didi

r - 将数据集中的每个单元格除以 R 中的列总和

转载 作者:行者123 更新时间:2023-12-04 12:18:48 31 4
gpt4 key购买 nike

我试图将数据框中的每个单元格除以列的总和。例如,我有一个数据框 df:

sample   a   b   c
a2 1 4 6
a3 5 5 4

我想创建一个新的数据框,将每个单元格放入并除以列的总和,如下所示:
sample   a   b   c
a2 .167 .444 .6
a3 .833 .556 .4

我已经使用sweep() 看到了答案,但这看起来像是用于矩阵,而且我有数据框。我了解如何使用 colSums(),但我不确定如何编写一个函数来循环遍历列中的每个单元格,然后除以列总和。谢谢您的帮助!

最佳答案

鉴于这种:

> d = data.frame(sample=c("a2","a3"),a=c(1,5),b=c(4,5),c=c(6,4))
> d
sample a b c
1 a2 1 4 6
2 a3 5 5 4

您可以通过应用其余列来替换除第一列之外的每一列:
> d[,-1] = apply(d[,-1],2,function(x){x/sum(x)})

> d
sample a b c
1 a2 0.1666667 0.4444444 0.6
2 a3 0.8333333 0.5555556 0.4

如果您不想要 d被踩在事先复制。

关于r - 将数据集中的每个单元格除以 R 中的列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48140258/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com