我正在使用function
mytable
包中的 moonBook
将在function
宏中使用。 mytable
功能可快速创建人口描述表。
fun<-function(i,j)
{
j<-mytable(i~var1+var2+var3,data=rawdata)
return(j)
}
fun(i=criteria,j=out)
但是,错误出现了。
'i'是无效的列名:而是使用'(其他值名称)'
我认为mytable
函数无法识别宏对象i
。
借助这篇文章(object not found in summarise with macro(function) in r),我在i
周围加上了双括号。
但是错误再次出现。
Error in grepl(pattern, x, ignore.case = TRUE) :
invalid regular expression, reason 'Invalid contents of {}'
我尝试了enquo
和!!
。但是错误仍然出现。
Error in which(grepl(pattern, x, ignore.case = TRUE)) :
argument to 'which' is not logical
请帮助我了解问题所在。
答案 0 :(得分:0)
基于该函数,可能我们需要一个公式,并且可以使用paste
fun<-function(i) {
mytable(as.formula(paste0(i, " ~var1+var2+var3")),data=rawdata)
}
fun(i= "criteria")
注意:不需要'j'参数,因为我们不需要先创建对象然后return
。在R
中,不需要显式定义return