purrr 和 ggplot 函数不显示绘图(NSE 问题)
purrr and ggplot function are not displaying plot (NSE issue)
我怀疑这是处理 NSE 的问题。但为什么这两种方法不起作用,我怎样才能让它们起作用。
temp1 <- function(x){
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width)) +
geom_point() +
facet_wrap(as.formula(paste("~", x)))
}
walk('Species', temp1)
temp2 <- function(x){
x <- as.name(x)
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width)) +
geom_point() +
facet_wrap(~ x)
}
walk('Species', temp2)
对我来说,这似乎不是 NSE 问题。如果你阅读 ?walk
它说(强调由我添加):
walk() calls .f for its side-effect and returns the original input
尝试:
t <- walk('Species', temp1)
t
#[1] "Species"
我想如果你给你的 ggplot
添加一个明确的打印,你就能得到你想要的。例如。将 temp1
更改为:
temp1 <- function(x){
print(iris %>%
ggplot(aes(Sepal.Length, Sepal.Width)) +
geom_point() +
facet_wrap(as.formula(paste("~", x))))
}
我怀疑这是处理 NSE 的问题。但为什么这两种方法不起作用,我怎样才能让它们起作用。
temp1 <- function(x){
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width)) +
geom_point() +
facet_wrap(as.formula(paste("~", x)))
}
walk('Species', temp1)
temp2 <- function(x){
x <- as.name(x)
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width)) +
geom_point() +
facet_wrap(~ x)
}
walk('Species', temp2)
对我来说,这似乎不是 NSE 问题。如果你阅读 ?walk
它说(强调由我添加):
walk() calls .f for its side-effect and returns the original input
尝试:
t <- walk('Species', temp1)
t
#[1] "Species"
我想如果你给你的 ggplot
添加一个明确的打印,你就能得到你想要的。例如。将 temp1
更改为:
temp1 <- function(x){
print(iris %>%
ggplot(aes(Sepal.Length, Sepal.Width)) +
geom_point() +
facet_wrap(as.formula(paste("~", x))))
}