使用sapply的数据集和UDF

时间:2017-06-04 14:22:40

标签: r

我有一个从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

1 个答案:

答案 0 :(得分:0)

您正在错误地调用该函数。它应该是

myfun <- function(x) x^2

sapply(xy, FUN = myfun)

在任何情况下,尝试在函数中插入browser()调用并检查发生了什么。有关详细信息,请参阅?browser

myfun <- function(x) {
  browser()
  x^2
}
相关问题