r - R quosure 问题中的用户函数
问题描述
我正在使用库(summarytools)中的频率来创建一些频率。
例子:
mtcars %>%
freq(mpg,
cumul = FALSE,
totals = TRUE)
我正在尝试创建一个用户函数,以便可以循环选择变量来生成这些表:
create_freq <- function(v1) {
v1 <- enquo(v1)
out <- mtcars %>%
freq(!!v1,
cumul = FALSE,
totals = TRUE)
return(out)
}
create_freq(mpg)
但是我得到了这个我无法弄清楚的错误,我认为关闭不正确,但我不知道如何调试......请帮忙?
Error in freq(., !!v1, cumul = FALSE, totals = TRUE) :
NULL is either NULL or does not exist
Called from: freq(., !!v1, cumul = FALSE, totals = TRUE)
解决方案
mtcars %>%freq(mpg,cumul = FALSE,totals = TRUE)
给出与 相同的输出freq(mtcars$mpg, cumul = FALSE, totals = TRUE
。因此,在不使用 NSE 使事情变得复杂的情况下,您可以尝试一下。
library(summarytools)
create_freq <- function(v1) {
freq(v1,cumul = FALSE, totals = TRUE)
}
对于一个变量 -
create_freq(mtcars$mpg)
对于多个变量 -
lapply(mtcars[1:2], create_freq)
推荐阅读
- testing - Cypress.io:如何为不同的用户类型使用一个登录测试?
- c# - Unity c#中的Google搜索结果计数
- google-cloud-firestore - Firestore:“超过验证密码的配额”?
- java - 通过 Java 在 MySQL 5.7 版本中创建函数
- webpack - 使用 Webpack 4.X 的联合模块
- git - 为什么 git apply 并且失败了?
- javascript - addProject 不是函数(续集)
- react-native - 在 ReactNative 的 Flatlist 中显示 2 个项目
- publish-subscribe - PubSub 在确认截止日期后未重新发送消息
- php - 在上传php之前重命名多个文件错误只上传单个文件