首页 > 解决方案 > 如何计算 v1 v2 v3 并将其显示为百分比?

问题描述

df <- data.frame(v1 = c('1','0','1','1','0','1','0','0','1'),
                 v2 = c('0','1','1','1','0','0','1','0','0'),
                 v3 = c('1','0','0','1','0','0','0','1','1'))
df

如何计算 v1 v2 v3 并将其显示为百分比?预期结果 v1 有 4 个 0 5 1(0 类 4/9;1 类 5/9)v2 有 5 个 0 和 4 个 1 等。我的试验如下:

length(df$`v1`[df$`v1` == 0])

[1] 4

标签: r

解决方案


使用dplyr

library(dplyr)
df %>% summarise(across(.fns = ~mean(. == '1')))

#         v1        v2        v3
#1 0.5555556 0.4444444 0.4444444

如果您只有二进制数据,您可以将数据转换为数字并使用colMeans

df %>% type.convert() %>% colMeans()

推荐阅读