इस सरल उदाहरण पर विचार करेंggplot और dplyr को फ़ंक्शन में कैसे गठबंधन करना है?
library(dplyr)
library(ggplot2)
dataframe <- data_frame(id = c(1,2,3,4),
group = c('a','b','c','c'),
value = c(200,400,120,300))
# A tibble: 4 x 3
id group value
<dbl> <chr> <dbl>
1 1 a 200
2 2 b 400
3 3 c 120
4 4 c 300
यहाँ मैं एक समारोह है कि dataframe और समूहीकरण चर इनपुट के रूप में लेता है लिखना चाहते हैं। आदर्श रूप से, समूहबद्ध करने और एकत्र करने के बाद मैं ggpplot
चार्ट मुद्रित करना चाहता हूं।
यह काम करता है:
get_charts2 <- function(data, mygroup){
quo_var <- enquo(mygroup)
df_agg <- data %>%
group_by(!!quo_var) %>%
summarize(mean = mean(value, na.rm = TRUE),
count = n()) %>%
ungroup()
df_agg
}
> get_charts2(dataframe, group)
# A tibble: 3 x 3
group mean count
<chr> <dbl> <int>
1 a 200 1
2 b 400 1
3 c 210 2
दुर्भाग्य से, ऊपर समारोह में ggplot
जोड़ने में विफल रहता है
get_charts1 <- function(data, mygroup){
quo_var <- enquo(mygroup)
df_agg <- data %>%
group_by(!!quo_var) %>%
summarize(mean = mean(value, na.rm = TRUE),
count = n()) %>%
ungroup()
ggplot(df_agg, aes(x = count, y = mean, color = !!quo_var, group = !!quo_var)) +
geom_point() +
geom_line()
}
> get_charts1(dataframe, group)
Error in !quo_var : invalid argument type
मैं समझता हूँ कि यहाँ क्या गलत है न। कोई विचार? धन्यवाद!
संपादित करें: दिलचस्प अनुवर्ती यहाँ how to create factor variables from quosures in functions using ggplot and dplyr?
लानत !!! क्या आप जानते हैं कि मैं ऊपर अपना कोड कैसे ठीक कर सकता हूं ?? धन्यवाद!! –