我正在尝试从purrr
中学习tidyverse
我已经设置了一段代码来尝试将虹膜数据集中的所有变量相互映射,以查看它们是否是线性相关的。不幸的是,除了空白的情节,我似乎没有得到任何回报。以下是我的例子。任何人都可以帮忙
library(tidyverse)
mydf <- iris %>%
as_tibble %>%
dplyr::select(everything(), -Species)
# Create a grid of names of columns
mynames <- names(mydf)
mygrid <- expand.grid(x=mynames, y =mynames)
# Define function
plot_my_data <- function(mydata, x, y){
ggplot(mydata, aes(x, y)) +
geom_smooth()}
map2(.x = mygrid$x,
.y = mygrid$y,
.f = ~ plot_my_data(mydf, .x,.y))
答案 0 :(得分:4)
您的代码中有2个问题。
第一个是你使用aes
你应该使用aes_string
,其次是你有因素而不是mygrid中的字符。
这有效:
mygrid <- expand.grid(x=mynames, y =mynames,stringsAsFactors = F)
# Define function
plot_my_data <- function(mydata, x, y){
ggplot(mydata, aes_string(x, y)) +
geom_smooth()}
map2(.x = mygrid$x,
.y = mygrid$y,
.f = ~ plot_my_data(mydf, .x,.y))