我想创建一个函数,它在参数中接受x(字符变量),并将其作为公式的一部分放入svytable()函数中。
prop <- function(x){
tab <- svytable(~x+group_treatment, dw)
df <- as.data.frame(cprop(tab))
df_bis <- reshape(df,idvar = "x",timevar = "group_treatment", direction = "wide")
df_bis
}
prop("tranche_age")
当我运行这段代码时,我得到以下错误消息:“eval(predvars,data,env)出错:未找到对象'x'调用自:eval(predvars,data,env)"。
有什么办法解决这个问题吗?
谢啦
克洛伊
1条答案
按热度按时间jjhzyzn01#
可以使用
reformulate
根据传递给函数的列名动态创建formula
。另外,你必须在reshape()
中使用idvar = x
而不是idvar = "x"
。使用
?svytable
中的默认示例数据: