创建 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 的 -干净多了。
我使用了一个包含 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 的 -干净多了。