【发布时间】:2021-09-05 15:36:09
【问题描述】:
我有一个数据框,我想计算每个名称符合特定条件的观察次数:
library(dplyr)
test <- tibble(name = c("Justin", "Corey", "Sibley", "Justin", "Corey", "Sibley", "Justin", "Corey", "Sibley"),
class = c("Bio", "Bio", "Bio", "Psych", "Pysch", "Psych", "English", "English", "English"),
result = c("Fail", "Pass", "Pass", "Fail", "Pass", "Pass", "Fail", "Fail", "Pass"))
在上面的示例中,学生学习的课程是 STEM(例如“Bio”和“Psych”)或文学(“English”)。我想创建两列新列,一列表示他们的 STEM 分数,另一列包含他们的文学分数,其中代码每通过一次计为 1。
答案应该是这样的:
library(dplyr)
answer <- tibble(name = c("Justin", "Corey", "Sibley"),
stem_assessment = c(0, 2, 2),
lit_assessment = c(0, 0, 1))
我尝试过使用case_when()、group_by()、n()、summarize() 和count(),但我似乎无法破解它。
【问题讨论】:
标签: r dplyr group-by case-when summarize