簡體   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