当使用case_函数时,如何使用它?我的输出是NA';s在R
我与50岁以上的高级客户建立了以下数据框架 西尼尔斯达当使用case_函数时,如何使用它?我的输出是NA';s在R,r,dplyr,R,Dplyr,我与50岁以上的高级客户建立了以下数据框架 西尼尔斯达 Name X_Age Mike 55 July 64 Fay 76 Martin 93 Zack 54 Jenny 83 Suzy 56 这是我想要的输出 Name X_Age Cohort Mike 55 50-59 July 64 60-69 Fay 76
Name X_Age
Mike 55
July 64
Fay 76
Martin 93
Zack 54
Jenny 83
Suzy 56
这是我想要的输出
Name X_Age Cohort
Mike 55 50-59
July 64 60-69
Fay 76 70-79
Martin 93 90+
Zack 54 50-59
Jenny 83 80-89
Suzy 56 50-59
我试图在命令和变异时使用case,但出于某种原因,队列列都是NA的
a <- seniorsdata %>% mutate(Cohort = case_when(X_Age <= 50 & X_Age > 60 ~ '50-59',
X_Age <= 60 & X_Age > 70 ~ '60-69',
X_Age <= 70 & X_Age > 80 ~ '70-79',
X_Age <= 80 & X_Age > 90 ~ '80-89',
X_Age <= 90 & X_Age > 999 ~ '90+'
))
a%突变(队列=病例组,年龄60~50-59岁,
X_年龄70~60-69岁,
X_年龄80~70-79岁,
X_年龄90~80-89岁,
X_年龄999~'90+'
))
我做错了什么 指定条件的方式不理想。请参阅以下内容
library(dplyr)
dat2 <- dat %>%
mutate(Cohort = case_when(
X_Age >= 50 & X_Age < 60 ~ '50-59',
X_Age >= 60 & X_Age < 70 ~ '60-69',
X_Age >= 70 & X_Age < 80 ~ '70-79',
X_Age >= 80 & X_Age < 90 ~ '80-89',
X_Age >= 90 ~ '90+',
TRUE ~ NA_character_
))
dat2
# Name X_Age Cohort
# 1 Mike 55 50-59
# 2 July 64 60-69
# 3 Fay 76 70-79
# 4 Martin 93 90+
# 5 Zack 54 50-59
# 6 Jenny 83 80-89
# 7 Suzy 56 50-59
库(dplyr)
dat2%
突变(队列=病例)(
X_年龄>=50&X_年龄<60~'50-59',
X_年龄>=60&X_年龄<70~'60-69',
X_年龄>=70&X_年龄<80~'70-79',
X_年龄>=80&X_年龄<90~'80-89',
X_年龄>=90~'90+',
真~NA_性格_
))
dat2
#姓名X_年龄组
#1迈克55 50-59
#2004年7月2日60-69
#3费伊7670-79
#4马丁9390+
#5扎克54 50-59
#6詹妮83 80-89
#7苏西56 50-59
数据
dat <- read.table(text = "Name X_Age
Mike 55
July 64
Fay 76
Martin 93
Zack 54
Jenny 83
Suzy 56",
header = TRUE, stringsAsFactors = FALSE)
dat而不是使用case\u当
您可能想使用cut
函数时,您的方法似乎是错误的。我想你想要的东西更像xuage>=50&xuage<60
。因为现在你的标准不符合。没有同时小于50岁和大于60岁的年龄。你所有的条件都是错误的。X_Age
怎么可能小于或等于50而大于60?非常感谢,我意识到我做错了什么。我很感激!