【问题标题】:Assigning column value based on values in three other columns根据其他三列中的值分配列值
【发布时间】:2019-12-16 05:02:39
【问题描述】:

我上周开始学习 R,并且有一个 K-12 学生的考试成绩数据集。有一个等级列(k-12)、学科(数学、阅读、科学)和考试成绩。我需要创建一个将考试成绩与熟练程度联系起来的列。所以如果一个学生的分数在 0-147 之间,他们被分配一个“有限”的熟练程度,148-158 的“标准”等等。

数据集如下所示:

enter image description here

等等。我希望它看起来像这样:

enter image description here

问题是,不同熟练程度的分界点因年级和学科而异。我试图避免在 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


【解决方案1】:

我们可以使用cut

library(dplyr)
test_score %>%
      mutate(proficiency_level = cut(score, breaks = K_math, labels = levels))

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多