如何计算多个变量的总计百分比?

bbe*_*ear 4 r dplyr

students <- data.frame( names = c( "Bill", "Stacey", "Fred", "Jane", "Sarah" ), 
                        gender = c( "M", "F", "M", "F", "F" ),
                        age = c( "10-12", "10-12", "13-15", "7-9", "16-18" ),
                        stringsAsFactors = FALSE )
Run Code Online (Sandbox Code Playgroud)

我已将下面的函数用于一个变量,但是它不适用于多个变量。

library(dplyr)
result_dplyr <- students %>%
group_by(gender) %>%
summarise(per_to_tot = n() / nrow(student) * 100)
print(result_dplyr)
Run Code Online (Sandbox Code Playgroud)

所需的输出如下。

#    gender per to tot
# 1:      M 40
# 2:      F 60
#    age  
# 1:     7-9   20
# 2:     10-12 40
# 3:     13-15 20
# 4:     16-18 20
Run Code Online (Sandbox Code Playgroud)

适用于多个变量的 R 代码。

Tho*_*ing 7

你可以试试

lapply(students[-1], \(x) as.data.frame(proportions(table(x)) * 100))
Run Code Online (Sandbox Code Playgroud)

这使

$gender
  x Freq
1 F   60
2 M   40

$age
      x Freq
1 10-12   40
2 13-15   20
3 16-18   20
4   7-9   20
 
Run Code Online (Sandbox Code Playgroud)