r - Error with a User Defined Function -
i have user defined function using on following data set:
pos b c c b i created following function add variable data set.
predict <- function(uncontested.reb.per.game, stl.per.game, blk.per.game, opp.fga.at.rim.per.game, pts.per.game, passes.per.game, log.points.created.by.assist.per.game, sqrt.drives.per.game, pos){ if (pos=="a"){ pred = 1} else if(pos=="b"){ pred=4} else if(pos=="c"){ pred=5 } } when use following command(s): data <- transform(data, pred = predict(pos)
i error "the condition has length > 1 , first element used". think has using "if" statement on want apply each row instead of 1 element, tried variation of code above:
predict <- function(pos){ if (pos=="b" && pos!="a"){ pred = 1} else if(pos=="a"&&pos!="b"){ pred=4} else if(pos=="c" && pos!="a"){ pred=5 } } however, put same value pred in of rows despite different positions.
you should vectorize function. example change conditions statements using ifelse :
predict <- function(pos){ pred <- ifelse(pos=="a",1,ifelse(pos=="b",4,5)) pred }
Comments
Post a Comment