我有一个从csv创建的数据集(员工),它显示如下所示的数据;
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
答案 0 :(得分:0)
您正在错误地调用该函数。它应该是
myfun <- function(x) x^2
sapply(xy, FUN = myfun)
在任何情况下,尝试在函数中插入browser()
调用并检查发生了什么。有关详细信息,请参阅?browser
。
myfun <- function(x) {
browser()
x^2
}