![](/img/trans.png)
[英]Assigning column values based on which value is highest in a row of three other columns in R
[英]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.