簡體   English   中英

將自定義函數應用於R中數據框中每一行的兩列

[英]Apply custom function to two columns for every row in data frame in R

我有一個看起來有點像這樣的data.frame DF

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM