【发布时间】:2019-12-16 05:02:39
【问题描述】:
我上周开始学习 R,并且有一个 K-12 学生的考试成绩数据集。有一个等级列(k-12)、学科(数学、阅读、科学)和考试成绩。我需要创建一个将考试成绩与熟练程度联系起来的列。所以如果一个学生的分数在 0-147 之间,他们被分配一个“有限”的熟练程度,148-158 的“标准”等等。
数据集如下所示:
等等。我希望它看起来像这样:
问题是,不同熟练程度的分界点因年级和学科而异。我试图避免在 R 中做一个巨大的 ifelse 循环。
例如,幼儿园数学考试成绩为 141 分属于有限熟练水平,但阅读成绩相同则属于“标准”水平。四年级数学141分可能是“精通”
我尝试为每个科目和年级组合的切点分配向量,这样我就可以使用 findInterval 函数
K_math <- c(0, 147, 151, 158, 167, 350)
K_reading <- c(0, 135, 147, 159, 169, 350)
levels <- c("Limited", "Standard", "Proficient", "Accelerated", "Advanced")
然后
mutate(test_scores$_df$proficiency_level <- case_when(Grade == "K" & Discipline == "Mathematics" & findInterval(test_scores_df$RawTestScore, K_math, left.open = TRUE) ~ levels))
请帮忙
【问题讨论】:
-
谢谢你,我更新了我的帖子,并将继续提高我的问题的质量!
标签: r dataframe if-statement conditional-statements