首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建4类变量

创建4类变量
EN

Stack Overflow用户
提问于 2021-07-06 01:29:40
回答 1查看 102关注 0票数 0

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

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

代码语言:javascript
复制
level <- ifelse (df$Total <2, "Limited", ifelse((df$Total>= 2) & (df$Total<3), "Basic","Good"))

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-06 01:50:34

我可能误解了什么,但你似乎有重叠的类别-总>= 2是基本的,但总<3是好的。您可能需要确认分组的界限。一旦对此进行了排序,您实际上已经非常接近于一个有效的解决方案--您可以嵌套ifelse语句,并考虑它们是按顺序计算的。因此,如果一个条件计算为链中的“早期”TRUE,那么它将返回TRUE响应的输出。否则,它将移动到要计算的下一个ifelse。请注意,我使用了1、2和3作为类别的“中断”,因此逻辑计算为:“如果小于1,它是有限的。如果小于2,它是基本的。如果小于3,它是好的。否则,它是满的。”

代码语言:javascript
复制
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块可能是可以的--如果我使用更多的界限,我可能会使用另一种方法--编辑:就像这封电子邮件一样--它要干净得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68263489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档