微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建 4 个类别变量

如何解决创建 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 举报,一经查实,本站将立刻删除。