如何解决创建 4 个类别变量
我使用了一项包含 20 个问题的调查,并将 20 个问题的平均值计算为“总计” 400 名参与者。 现在我需要将总计分为 4 组: Total = 2 是基本的,Total = 3 是 Full
我能够创建三个但不是四个变量,如下所示:
level <- ifelse (df$Total <2,"Limited",ifelse((df$Total>= 2) & (df$Total<3),"Basic","Good"))
然后我想看看每个类别在数字或图表上的百分比是多少。
解决方法
我可能误解了一些东西,但您似乎有重叠的类别 - Total >= 2 是基本的,但 Total ifelse 语句并认为它们是按顺序计算的。因此,如果条件评估为链中的 TRUE
“早期”,它将返回该点 TRUE
响应的任何输出。否则,它将移动到下一个 ifelse
进行评估。请注意,我在此处使用了 1、2 和 3 作为类别的“中断”,因此逻辑评估为:“如果小于 1,则为有限。如果小于 2,则为基本。如果是小于 3 还好,否则就满了。"
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
块可能没问题 - 如果我使用更多边界,我可能会使用不同的方法 Edit: 像 thelatemail's - 它更干净。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。