如何将 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

只有输入一个数字才有效

您不需要 greplsapply。但我不确切知道你想要那个专栏的条件是什么。下面是嵌套 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