当前位置:  开发笔记 > 编程语言 > 正文

将自定义函数应用于R中数据框中每一行的两列

如何解决《将自定义函数应用于R中数据框中每一行的两列》经验,为你挑选了1个好方法。

我有一个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的错误周围出现错误.



1> Sam Dickson..:

也许你想尝试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

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有