如何在R语言自定义函数中正确使用xtabs函数?
解决xtabs自定义包装函数的错误问题
你的包装函数出错的核心原因是:xtabs(~ variable, data = data)里的variable是传入的字符串参数,xtabs不会自动将它解析为数据框中的列名,而是把它当作一个固定的字面量值,所以统计的是这个字符串出现的次数,结果自然是1。
以下两种方法可以修复这个问题:
方法一:使用reformulate构造公式
xtabs_fun <- function(data, variable) { xtabs(reformulate(variable), data = data) }
方法二:拼接字符串生成公式
xtabs_fun <- function(data, variable) { xtabs(as.formula(paste("~", variable)), data = data) }
调用修复后的函数xtabs_fun(mtcars, "cyl"),就能得到预期结果:
cyl 4 6 8 11 7 14
内容的提问来源于stack exchange,提问作者writer_typer
相关产品推荐
相关产品推荐

