2015-11-06 7 views
8

ggplot2 पैकेज से वास्तव में एक अच्छी सुविधा है जिसे मैंने वास्तव में कभी भी शोषण नहीं किया था, जो कि साजिश में परतों की सूचियां जोड़ रहा था। इसके बारे में मजेदार बात यह थी कि मैं परतों की एक सूची को एक समारोह के तर्क के रूप में पास कर सकता हूं और उन्हें साजिश में जोड़ दिया है। इसके बाद मैं साजिश की वांछित उपस्थिति प्राप्त कर सकता हूं, बिना किसी फंक्शन को साजिश से वापस लौटा सकता हूं (चाहे यह एक अच्छा विचार है, एक और मामला है, लेकिन यह संभव था)।क्या 'सूची के माध्यम से पाइप' करने का कोई तरीका है?

library(ggplot2) 
x <- ggplot(mtcars, 
      aes(x = qsec, 
       y = mpg)) 

layers <- list(geom_point(), 
       geom_line(), 
       xlab("Quarter Mile Time"), 
       ylab("Fuel Efficiency")) 

x + layers 

क्या पाइप के साथ ऐसा करने का कोई तरीका है? कुछ सदृश करने के लिए:

#* Obviously isn't going to work 
library(dplyr) 
action <- list(group_by(am, gear), 
       summarise(mean = mean(mpg), 
         sd = sd(mpg))) 

mtcars %>% action 
+1

कि यह करना होगा! बहुत साफ़। – Benjamin

उत्तर

15

magrittr चरणों का क्रम का निर्माण करने के लिए, .

action = . %>% group_by(am, gear) %>% summarise(mean = mean(mpg), sd = sd(mpg)) 

तब के साथ शुरू के रूप में ओपी में कल्पना में इसका इस्तेमाल किया जा सकता है:

mtcars %>% action 

एक list की तरह , हम प्रत्येक चरण को देखने के लिए सबसेट कर सकते हैं:

action[[1]] 
# function (.) 
# group_by(., am, gear) 

सभी चरणों की समीक्षा, functions(action) का उपयोग या सिर्फ नाम टाइप करने के लिए:

action 
# Functional sequence with the following components: 
# 
# 1. group_by(., am, gear) 
# 2. summarise(., mean = mean(mpg), sd = sd(mpg)) 
# 
# Use 'functions' to extract the individual functions. 
संबंधित मुद्दे

 संबंधित मुद्दे