首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的多个if else语句

R中的多个if else语句
EN

Stack Overflow用户
提问于 2020-12-04 09:40:13
回答 1查看 51关注 0票数 0

我有一个大型数据集(名为'cud1'),我想在其中添加一个新列,将多个主要健康投诉分类为更简单的健康类别('q2.2_healthCat')。也就是说,初级健康投诉1、2、4或6将被归类为“精神健康”(第1类),答复3、5、7或8=疼痛(第2类),所有其他答复(9、10、11、12)将被归类为其他(第3类)。这是一个基本的数据框架,让你有一个概念:

代码语言:javascript
复制
Participant_ID <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)  
Primary_health_complaint <- c(3, 7, 12, 11, 3, 1, 9, 4, 6, 2)
cud1 <- data.frame(Participant_ID, Primary_health_complaint)

然后我想要一个新的专栏写道:

代码语言:javascript
复制
q2.2_healthCat <- c(2, 2, 3, 3, 2, 1, 3, 1, 1, 1)

下面是我的尝试(这次使用case_when ):

代码语言:javascript
复制
cud1 <- cud1 %>% mutate(q2.2_healthCat = case_when(
primary_health_complaint = c(1,2,4,6), '1', 
primary_health_complaint = c(3,5,7,8), '2',
primary_health_complaint = c(9,10,11,12), '3')) 

希望有人能帮忙!请善待我,因为我是R的新手。我已经看了很多其他的帖子,但我不知道我做错了什么。

编辑:在这里case_when in mutate pipe找到了解决方案,使用了以下内容:

代码语言:javascript
复制
 require(data.table) ## 1.9.2+
 setDT(df)
 df[a %in% c(0,1,3,4) | c == 4, g := 3L]
 df[a %in% c(2,5,7) | (a==1 & b==4), g := 2L]
EN

回答 1

Stack Overflow用户

发布于 2020-12-04 09:44:31

也许您可以尝试使用下面的嵌套ifelse

代码语言:javascript
复制
within(cud, q2.2_healthCat <- ifelse(Primary_health_complaint %in% c(1, 2, 4, 6), 1, ifelse(Primary_health_complaint %in% c(3, 5, 7, 8), 2, 3)))

这给了我们

代码语言:javascript
复制
   Participant_ID Primary_health_complaint q2.2_healthCat
1               1                        3              2
2               2                        7              2
3               3                       12              3
4               4                       11              3
5               5                        3              2
6               6                        1              1
7               7                        9              3
8               8                        4              1
9               9                        6              1
10             10                        2              1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65136724

复制
相关文章

相似问题

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