[英]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.