【发布时间】:2020-11-13 17:58:43
【问题描述】:
我有一个数值变量 (FinalPerformance),它的取值范围为 0 到 100。我想根据该变量创建因子水平。因此,我使用函数 quantile 将数据集分为三个部分。我的问题是代码正确地对列进行了排序(我认为),但我不确定为什么。见下文:
Performance <- Performance %>% mutate(FactorPerformance = as.factor(case_when(
FinalPerformance <= quantile(FinalPerformance, probs = seq(0,1,1/3))[[1]] ~ "Low",
FinalPerformance <= quantile(FinalPerformance, probs = seq(0,1,1/3))[[2]] ~ "Medium",
TRUE ~ "High"
)), FactorPerformance = fct_relevel(FactorPerformance, c("Low", "Medium", "High")))
我认为“中”因子水平应该覆盖“低”因子水平,因为我没有指定介于范围之间。见下文:
Performance <- Performance %>% mutate(FactorPerformance = as.factor(case_when(
FinalPerformance <= quantile(FinalPerformance, probs = seq(0,1,1/3))[[1]] ~ "Low",
FinalPerformance > quantile(FinalPerformance, probs = seq(0,1,1/3))[[1]] &
FinalPerformance <= quantile(FinalPerformance, probs = seq(0,1,1/3))[[2]] ~ "Medium",
TRUE ~ "High"
)), FactorPerformance = fct_relevel(FactorPerformance, c("Low", "Medium", "High")))
当我计算 FactorPerformance 列中的值时,我得到了相同的结果。我错过了什么?
【问题讨论】: