2016-01-29 10 views
9

का उपयोग कर रहा Coursera आर प्रतिगमन मॉडल पाठ्यक्रम में दिए गए इस सरल उदाहरण को दोहराने के लिए कोशिश कर रहा हूँ GGally :: ggpairs में लेस विधि का उपयोग कैसे करें:रैप समारोह

require(datasets) 
data(swiss) 
require(GGally) 
require(ggplot2) 
ggpairs(swiss, lower = list(continuous = "smooth", params = c(method = "loess"))) 

मैं एक 6x6 जोड़े भूखंड देखने की उम्मीद - एक स्विस डेटा में 6 चर के प्रत्येक संयोजन के लिए चिकना और आत्मविश्वास अंतराल के साथ स्कैटरप्लॉट।

हालांकि, मैं निम्नलिखित त्रुटि मिलती है:

Error in display_param_error() : 'params' is a deprecated argument. Please 'wrap' the function to supply arguments. help("wrap", package = "GGally")

मैं ggpairs() और wrap() मदद फ़ाइलों के माध्यम से देखा और wrap() और wrap_fn_with_param_arg() कार्यों के क्रमपरिवर्तन के बहुत कोशिश की है।

मैं इस अपेक्षा के अनुरूप काम करने के लिए प्राप्त कर सकते हैं:

ggpairs(swiss, lower = list(continuous = wrap("smooth"))) 

लेकिन एक बार मैं में लेस हिस्सा जोड़ने के लिए, यह नहीं है:

ggpairs(swiss, lower = list(continuous = wrap("smooth"), method = wrap("loess"))) 

मैं जब मैं रेखा से ऊपर की कोशिश की यह त्रुटि प्राप्त ।

Error in value[3L] : The following ggpair plot functions are readily available: continuous: c('points', 'smooth', 'density', 'cor', 'blank') combo: c('box', 'dot', 'facethist', 'facetdensity', 'denstrip', 'blank') discrete: c('ratio', 'facetbar', 'blank') na: c('na', 'blank')

diag continuous: c('densityDiag', 'barDiag', 'blankDiag') diag discrete: c('barDiag', 'blankDiag') diag na: c('naDiag', 'blankDiag')

You may also provide your own function that follows the api of function(data, mapping, ...){ . . . } and returns a ggplot2 plot object Ex: my_fn <- function(data, mapping, ...){ p <- ggplot(data = data, mapping = mapping) + geom_point(...) p } ggpairs(data, lower = list(continuous = my_fn))

Function provided: loess

जाहिर है मैं गलत जगह में लेस प्रवेश कर रहा हूँ। क्या कोई मुझे समझने में मदद कर सकता है कि कैसे नींद का हिस्सा जोड़ना है?

ध्यान दें कि मेरी समस्या this one लिए अलग है, के रूप में मैं कैसे ggpairs में लेस लागू करने के बाद से पैरामीटर तर्क पदावनत हो गया पूछ रहा हूँ।

बहुत बहुत धन्यवाद।

उत्तर

17

एक त्वरित तरीका है अपने खुद के समारोह में लिखने के लिए है ... एक नीचे अपने प्रश्न में ggpairs त्रुटि संदेश द्वारा प्रदान की एक से संपादित किया गया था

library(GGally) 
library(ggplot2)  
data(swiss) 

# Function to return points and geom_smooth 
# allow for the method to be changed 
my_fn <- function(data, mapping, method="loess", ...){ 
     p <- ggplot(data = data, mapping = mapping) + 
     geom_point() + 
     geom_smooth(method=method, ...) 
     p 
    } 

# Default loess curve  
ggpairs(swiss[1:4], lower = list(continuous = my_fn)) 

enter image description here

# Use wrap to add further arguments; change method to lm 
ggpairs(swiss[1:4], lower = list(continuous = wrap(my_fn, method="lm"))) 

enter image description here


यह शायद जी तर्क है कि प्रत्येक geon_

my_fn <- function(data, mapping, pts=list(), smt=list(), ...){ 
       ggplot(data = data, mapping = mapping, ...) + 
         do.call(geom_point, pts) + 
         do.call(geom_smooth, smt) 
       } 

# Plot 
ggpairs(swiss[1:4], 
     lower = list(continuous = 
         wrap(my_fn, 
          pts=list(size=2, colour="red"), 
          smt=list(method="lm", se=F, size=5, colour="blue")))) 
+2

ऐसा उपयोगी है, धन्यवाद! – meenaparam

7

शायद तुम Coursera ऑनलाइन पाठ्यक्रम प्रतिगमन मॉडल लेने और पाठ्यक्रम के द्वारा दिए गए फ़ाइल HTML करने के लिए Rmarkdown फ़ाइल बदलने की कोशिश कर रहे हैं करने के लिए पारित कर रहे हैं सामग्री पर और अधिक नियंत्रण आइव्स, और इस पार चलो त्रुटि के रूप में मैं करता हूँ।

तरह से मैं बाहर की कोशिश की है:

require(datasets); data(swiss); require(GGally); require(ggplot2) 
g = ggpairs(swiss, lower = list(continuous = wrap("smooth", method = "lm"))) 
g 

इसके अलावा, आप method="loess" उपयोग करने का प्रयास कर सकते हैं, लेकिन परिणाम एक सा व्याख्यान में दी गई है कि से अलग दिखता है। जैसा कि मैंने देखा method = "lm" एक बेहतर फिट हो सकता है।

+0

यह सुझाव देने के लिए धन्यवाद, लेकिन जब मैं आपका कोड आज़माता हूं, तो मुझे एक त्रुटि मिलती है त्रुटि: अज्ञात पैरामीटर: विधि – meenaparam

+1

@मेनापाराम मेरे मामले में मुझे कोई त्रुटि नहीं मिली है। कुछ 'R.version' आउटपुट: _platform_ 'x86_64-pc-linux-gnu', _os_' linux-gnu', _version.string_ 'आर संस्करण 3.3.3 (2017-03-06)'। – Cryptor

+0

यह मेरे लिए अब काम करता है, उन्होंने 'ggally' को अपडेट किया होगा, धन्यवाद! – meenaparam

1

मुझे संदेह था कि आप Coursera की कक्षा ले रहे थे। हालांकि, मुझे ggplot के उदाहरण वाले कोई भी जिथब रेपो नहीं मिला।

यहाँ मैं यह काम करने के लिए किया था है: बहुत ज्यादा

gp = ggpairs(swiss, lower = list(continuous = "smooth")) 
gp 
+0

धन्यवाद @ फायर फाइटर 1017, लेकिन यह एक लापरवाही फिट ('एलएम') देता है जो मैं चाहता था कि एक चिकना चिकना हो। अपना कोड काम करने के लिए उपरोक्त @ स्कारैन का उत्तर देखें। – meenaparam

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