gpt4 book ai didi

R:构建计算相对频率百分比并将其应用于所有列的函数

转载 作者:行者123 更新时间:2023-12-02 06:46:21 26 4
gpt4 key购买 nike

我是 R 的完全初学者,在构建函数时遇到一些问题...

enter image description here

我的数据是这样的。

我想构建一个函数,以便我可以将表中的所有值转换为每列的相对频率百分比。

例如,对于第一列,我想将该列中的所有值除以该列的列总和 (colSum)。

然后,我想在所有专栏中重复一遍。

有什么我可以研究的功能吗?我试过应用函数,但我无法让它工作。

谢谢:)

最佳答案

使用apply函数,您可以:

apply(df,2, function(x) x/sum(x)*100)

在这里,我创建了这个虚拟示例来说明它是如何工作的:

 df <- data.frame(C1 = sample(1:100,5),
C2 = sample(1:100,5),
C3 = sample(1:100,5))

apply(df,2, function(x) x/sum(x)*100)

C1 C2 C3
[1,] 32.903226 13.861386 19.59799
[2,] 27.096774 1.980198 16.33166
[3,] 3.870968 44.554455 17.58794
[4,] 15.483871 17.821782 21.85930
[5,] 20.645161 21.782178 24.62312

使用dplyr 包,您可以使用mutate_all 获得相同的输出:

library(dplyr)
df %>% mutate_all(.funs = ~./sum(.)*100)

C1 C2 C3
1 32.903226 13.861386 19.59799
2 27.096774 1.980198 16.33166
3 3.870968 44.554455 17.58794
4 15.483871 17.821782 21.85930
5 20.645161 21.782178 24.62312

它是否回答了您的问题?

关于R:构建计算相对频率百分比并将其应用于所有列的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60492917/

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