【发布时间】:2015-02-18 08:49:16
【问题描述】:
我正在使用新包 dplyr 并遇到一些困难。
mutate(df,isOdd=digit%%2) or transform(df,isOdd=digit%%2)
两者都完美运行。
我在问一个关于传递自定义方法的问题。
IsItOdd <- function(x) {
if(x%%2==0)
result<-"even"
else
result<-"odd"
return(result)
}
transform(df,isOdd=IsItOdd(digit))
这不起作用,因为所有数字的整列都传递给函数。 有没有办法通过将一个单元格而不是整个列传递给函数来完成这项工作?
【问题讨论】:
-
transform(df,isOdd=vapply(digit, IsItOdd, ""))或transform(df,isOdd=Vectorize(IsItOdd)(digit))?