簡體   English   中英

根據其他三列中的值分配列值

[英]Assigning column value based on values in three other columns

我上周開始學習 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))

請幫忙

我們可以使用cut

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM