在函数中传递字符串值作为参数

时间:2017-11-04 16:28:49

标签: r function

我想创建一个函数来搜索数据并找到条件值等于特定字符串的经验值。然而,这会产生此错误:

  

错误:评估嵌套太深:无限递归/选项(表达式=)?

     

换行时出错:评估嵌套太深:无限递归/选项(表达式

subset = function(data, ttt="string") {
    subset.cond <- subset(data, Condition==ttt) 
    row.cond <- subset.cond[ which(subset.cond$experience != 0),] 
    row.cond$experience <- factor(row.cond$experience) #drop factor levels
    exp.cond <- levels(row.cond$experience) #get experience names
    cond <- data[ which(data$experience==exp.cond ), ] #cleaned data
    return(list(subset.cond=subset.cond,row.cond=row.cond,exp.cond=exp.cond))
}

subset(data=data_1, ttt="drug1")

有没有人有任何提示? 非常感谢!

1 个答案:

答案 0 :(得分:0)

你写了一个无限递归的函数;你有打算吗?函数subset的第一行调用subset(即,它自称)。

您可以通过指定要使用基本函数subset来使此功能正常工作。即,

subset = function(data, ttt="string") {
    subset.cond <- base::subset(data, Condition==ttt)
    [...]
}