繁体   English   中英

R函数可基于多个列分配值

[英]R function to assign value based on multiple columns

我有一个函数可以根据b列中的条目为数据框的c列分配一个值(猫,狗或兔子):

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和b的值。 因此,例如,条件可能是:A:仅当mydf $ a == 1和mydf $ b == 1时才分配cat; B:无论mydf $ a的值是什么,只要mydf $ a == 2,并且mydf $ a == 3&mydf $ b == 5时,就分配狗。 C:将兔子分配给其他情况。 在语法上遇到麻烦,无法从以前的文章中找到示例。

您可以尝试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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM