我有一个函数,根据b列中的条目为数据帧的c列赋值(cat,dog或rabbit):
mydf <- data.frame(a = c(1:4), b= c(1,3,5,9))
myfunction <- function(x) {
if(x == 1 | x == 2) y <- "cat"
if(x > 2 & x < 6) y <- "dog"
if(x > 6) y <- "rabbit"
return(y)
}
mydf$c <- sapply(mydf$b,myfunction)
现在我想编写一个函数,使赋值以列a AND b的值为条件。例如,条件可能是: 答:当且仅当mydf $ a == 1&amp; mydf $ b == 1; B:只要mydf $ a == 2,就会分配狗,无论mydf $ b的值如何,以及mydf $ a == 3&amp; mydf $ b == 5; C:为其他病例分配兔子。语法有些问题,找不到上一篇文章的例子。
答案 0 :(得分:0)
您可以尝试ifelse
indx <- as.character(interaction(mydf,sep=""))
mydf$c <- ifelse(indx=='11', 'cat',
ifelse(substr(indx,1,1)=='2'|indx=='35', 'dog', 'rabbit'))
mydf
# a b c
#1 1 1 cat
#2 2 3 dog
#3 3 5 dog
#4 4 9 rabbit