我有一個從csv創建的數據集(僱員),它顯示如下所示的數據;使用sapply的數據集和UDF
employee[1,]
age name designation
28 Tony Manager
我已經創建了返回基於輸入參數的決定的功能;
loan_eligible_decision <- function(p)
{
if(p$designation == "manager")
{
decision <- "yes"
}
return(decision)
}
當函數被直接調用時,它工作正常,並給出下面的結果;
loan_eligible_decision(employee[1,])
gives me output: yes
但是,當在sapply家族中調用它時會拋出一個引用錯誤;
sapply(data.frame(employee[1,]),loan_eligible_decision(x))
Error in p$marital : $ operator is invalid for atomic vectors
有什麼建議可能是一種可能的解決方法/解決方案?
我也嘗試更換if條件;
if(p[[designation]] == "manager")
並要求這樣的功能;
sapply(employee['1',],loan_eligible_decision(x))
The error:
Error in loan_eligible_decision(x) : object 'designation' not found
這是錯誤的方法來應用它。對於rowwise操作,您需要使用'apply'和'margin = 1'。然而這並不是最好的方法。矢量化方法(在這種情況下使用'ifelse')是最好的選擇。你也不需要在這裏進行rowwise操作。 – Sotos