例如,如果我的数据看起来像这样:
Group Smoker
1 Ex
1 None
1 None
2 Current
1 Current
2 Ex
2 None
我想计算第1组中Ex,none和当前吸烟者的%或数量以及第2组中ex,none和当前吸烟者的%或数量
是否有一个简单的代码来执行此操作?
答案 0 :(得分:0)
我们可以使用dplyr包计算计数和百分比。
library(dplyr)
# Count
dat2 <- dat %>%
count(Group, Smoker)
dat2
# # A tibble: 6 x 3
# Group Smoker n
# <int> <chr> <int>
# 1 1 Current 1
# 2 1 Ex 1
# 3 1 None 2
# 4 2 Current 1
# 5 2 Ex 1
# 6 2 None 1
# Percentage
dat3 <- dat2 %>%
group_by(Group) %>%
mutate(Percent = n/ sum(n) * 100) %>%
ungroup()
dat3
# # A tibble: 6 x 4
# Group Smoker n Percent
# <int> <chr> <int> <dbl>
# 1 1 Current 1 25.0
# 2 1 Ex 1 25.0
# 3 1 None 2 50.0
# 4 2 Current 1 33.3
# 5 2 Ex 1 33.3
# 6 2 None 1 33.3
数据强>
dat <- read.table(text = "Group Smoker
1 Ex
1 None
1 None
2 Current
1 Current
2 Ex
2 None",
header = TRUE, stringsAsFactors = FALSE)