如何将 x>1 之类的参数传递给 ifelse 函数
How to pass parameter like x>1 to ifelse function
我有一个 data.frame 喜欢
Age
1
2
3
4
5
我想创建新变量"AgeGR"
getAgeGR = function(x) {
xInt = as.integer(x)
ifelse( grepl(0, xInt), "Puppy",
ifelse(grepl(|What to put here|, xInt), "Young",
ifelse(grepl(8, xInt), "Adult","Old") ))}
df$AgeGR = sapply(df$Age, getAgeGR)
我不知道 "What to put here"。我在尝试
x>1
>1
只有输入一个数字才有效
您不需要 grepl
或 sapply
。但我不确切知道你想要那个专栏的条件是什么。下面是嵌套 ifelse
语句以满足条件的方法: If Age <= 1 return "Young", Else If Age > 3 return "Old", Else return "Adult"
df$AgeGR <- ifelse(df$Age<=1,"Young",ifelse(df$Age>3,"Old","Adult"))
> df
Age AgeGR
1 1 Young
2 2 Adult
3 3 Adult
4 4 Old
5 5 Old
使用与上面相同的数据,更好的方法是使用?cut
。重复的 ifelse 语句可以工作,但在缩放时它们在输入和处理方面效率低下。
df
# Age
# 1 1
# 2 2
# 3 3
# 4 4
# 5 5
df$AgeGR <- cut(df$Age, c(-Inf, 1,3, Inf), c("Young", "Adult", "Old"))
df
# Age AgeGR
# 1 1 Young
# 2 2 Adult
# 3 3 Adult
# 4 4 Old
# 5 5 Old
我有一个 data.frame 喜欢
Age
1
2
3
4
5
我想创建新变量"AgeGR"
getAgeGR = function(x) {
xInt = as.integer(x)
ifelse( grepl(0, xInt), "Puppy",
ifelse(grepl(|What to put here|, xInt), "Young",
ifelse(grepl(8, xInt), "Adult","Old") ))}
df$AgeGR = sapply(df$Age, getAgeGR)
我不知道 "What to put here"。我在尝试
x>1
>1
只有输入一个数字才有效
您不需要 grepl
或 sapply
。但我不确切知道你想要那个专栏的条件是什么。下面是嵌套 ifelse
语句以满足条件的方法: If Age <= 1 return "Young", Else If Age > 3 return "Old", Else return "Adult"
df$AgeGR <- ifelse(df$Age<=1,"Young",ifelse(df$Age>3,"Old","Adult"))
> df
Age AgeGR
1 1 Young
2 2 Adult
3 3 Adult
4 4 Old
5 5 Old
使用与上面相同的数据,更好的方法是使用?cut
。重复的 ifelse 语句可以工作,但在缩放时它们在输入和处理方面效率低下。
df
# Age
# 1 1
# 2 2
# 3 3
# 4 4
# 5 5
df$AgeGR <- cut(df$Age, c(-Inf, 1,3, Inf), c("Young", "Adult", "Old"))
df
# Age AgeGR
# 1 1 Young
# 2 2 Adult
# 3 3 Adult
# 4 4 Old
# 5 5 Old