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 )

我使用下面的函数为一个变量,但是,它不适用于多个变量.

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

所需输出如下所示.

#    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

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

推荐答案

你可以试试

lapply(students[-1], \(x) as.data.frame(proportions(table(x)) * 100))

这给了我们

$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
 

R相关问答推荐

在数据表中呈现数学符号

使用ggplot 2根据R中的类别排列Likert比例gplot

名称输出pmap on tible

整数成随机顺序与约束R?

如何在ggplot图中找到第二轴的比例

R中的时间序列(Ts)函数计数不正确

从一个列表的框架中移除列表包装器

以相同的方式对每个表进行排序

R:用GGPLATE,如何在两个独立的变量中制作不同形状的散点图?

以NA为通配符的R中的FULL_JOIN以匹配其他数据中的任何值.Frame

正则表达式在第二个管道和第二个T之后拆分R中的列

`-`是否也用于数据帧,有时使用引用调用?

如何构建一个for循环来循环处理动物ID?

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?

需要一个函数来在第一行创建一个新变量,然后用新变量替换一个不同的变量(对于多行)

使用同一行中的前一个值填充R矩阵中的缺失值

对一个数据帧中另一个数据帧中的值进行计数

GgHighlight找不到它创建的列:`Highlight..1`->;`Highlight.....`

从data.table列表中提取特定组值,并在R中作为向量返回

创建由三个单独的shapefile组成的单个 map