我有一个DF
看起来有点像这样的data.frame
category var1 var2 apples 1 4 bananas 3 3 orange 4 1 kiwis 2 3
我还创建了一个简单的自定义函数,它根据两个参数生成输出:
annualize_fte <- function(tenure, amount) { if (tenure==0) return(0) if (tenure>12) { result = amount } else { t_factor = 12 / tenure result = amount * t_factor } return(result) }
我想创建第三列var3,它是应用于annualize_fte(var1, var2)
每一行的结果.
我尝试过以下操作并且失败了:
mutate(DF, var3=annualize_fte(var1, var2)) apply(DF, 1, annualize_fte, DF$var1, DF$var2)
我在未使用的参数或条件长度> 1的错误周围出现错误.
也许你想尝试Vectorize()
使它成为你的函数可以使用和返回向量:
annualize_fte_v <- Vectorize(annualize_fte) (DF$var3 <- annualize_fte_v(DF$var1,DF$var2)) # category var1 var2 var3 # 1 apples 1 4 48 # 2 bananas 3 3 12 # 3 orange 4 1 3 # 4 kiwis 2 3 18