创建 4 个类别变量

Create 4 categories variables

我使用了一个包含 20 个问题的调查,并将 20 个问题的平均值计算为“总计” 400 名参与者。 现在我需要将总计分为 4 组: Total < 2 是有限的,Total >= 2 是基本的,Total < 3 是好的,Total >= 3 是完整的

我能够创建三个但不是四个变量,如下所示:

level <- ifelse (df$Total <2, "Limited", ifelse((df$Total>= 2) & (df$Total<3), "Basic","Good"))

然后我想看看每个类别在数字或图表上的百分比是多少。

我可能误解了什么,但您似乎有重叠的类别 - Total >= 2 是基本的,但 Total < 3 是好的。您可能想要确认分组的范围。排序后,您实际上已经非常接近于一个可行的解决方案了——您可以嵌套 ifelse 语句并认为它们是按顺序计算的。因此,如果一个条件评估为 TRUE 在链中的“早期”,它将 return 无论此时 TRUE 响应的输出是什么。否则,它将移动到下一个 ifelse 进行评估。请注意,我在这里使用 1、2 和 3 作为类别的 'breaks',因此逻辑计算结果为:“如果小于 1,则为受限。如果小于 2,则为基本。如果小于 3,则为好。否则,为 Full。"

set.seed(123)
df <- data.frame(total = runif(n = 15, min = 0, max = 4))
df


df$level = ifelse(df$total < 1, "Limited", 
                  ifelse(df$total < 2, "Basic", 
                         ifelse(df$total < 3, "Good", "Full")))
> df
       total   level
1  0.5691772 Limited
2  2.1971386    Good
3  3.8163650    Full
4  2.3419334    Good
5  1.6180411   Basic
6  2.5915739    Good
7  1.2792825   Basic
8  1.2308800   Basic
9  0.8790705 Limited
10 1.4779555   Basic
11 3.9368768    Full
12 0.6168092 Limited
13 0.3641760 Limited
14 0.5676276 Limited
15 2.7600284    Good

只有四个类别,一个 ifelse 块可能没问题 - 如果我使用更多的边界,我可能会使用不同的方法 编辑: 就像 thelatemail 的 -干净多了。