![](/img/trans.png)
[英]How to apply a function to every two columns of a data frame without repetitions?
[英]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.