2011-09-16 10 views
6

aggregate राज्यों के लिए प्रलेखन:आर में "डेटाफ्रेम के लिए मानक सूत्र इंटरफ़ेस" का अर्थ क्या है?

'aggregate.formula' 'aggregate.data.frame' के लिए एक मानक सूत्र इंटरफेस है।

मैं आर के लिए नया हूं, और मुझे समझ में नहीं आता कि इसका क्या अर्थ है। कृपया समझाएँ!

धन्यवाद! aggregate() को

## Formulas, one ~ one, one ~ many, many ~ one, and many ~ many: 
aggregate(weight ~ feed, data = chickwts, mean) 
aggregate(breaks ~ wool + tension, data = warpbreaks, mean) 
aggregate(cbind(Ozone, Temp) ~ Month, data = airquality, mean) 
aggregate(cbind(ncases, ncontrols) ~ alcgp + tobgp, data = esoph, sum) 

चार अलग-अलग कॉल, सभी सूत्र इंटरफ़ेस का उपयोग:

उरी

उत्तर

9

help(aggregate) का उदाहरण खंड के बीच में कूद और आप इस देखेंगे। जिस तरह से यह विधि भेजने आर

भर में इस्तेमाल

पहले उदाहरण पर विचार तंत्र के साथ क्या करना है में है कि तुम क्या बोली ऊपर लिखा है:

R> class(weight ~ feed) 
[1] "formula" 
R> class(chickwts) 
[1] "data.frame" 

यह पहली बार (कक्षा formula का) तर्क पर तो कुल डिस्पैच। आर में एक फॉर्मूला को हल करने का तरीका आम तौर पर model.matrix के आसपास घूमता है, मुझे लगता है कि ऐसा कुछ ऐसा होता है और अंततः aggregate.data.frame द्वारा समकक्ष कॉल निष्पादित किया जाता है, दूसरे तर्क chickwts, data.frame का उपयोग करके।

R> aggregate(weight ~ feed, data = chickwts, mean) 
     feed weight 
1 casein 323.583 
2 horsebean 160.200 
3 linseed 218.750 
4 meatmeal 276.909 
5 soybean 246.429 
6 sunflower 328.917 
R> 

आप क्या पूछा, सबसे आसान शुरुआत सवाल नहीं है अगर आप एक काम है मैं प्रलेखन और एक सभ्य आर पुस्तक से कुछ पर एक अच्छा विस्तृत रूप से देखने की सलाह देते हैं। (और अन्य अतः सवाल सिफारिश आगे क्या पढ़ने के लिए के रूप में देते हैं।)

संपादित करें: मैं एक छोटे से खुदाई करने के लिए के रूप में aggregate.formula()stats नाम स्थान से निर्यात नहीं कर रहा है था, लेकिन आप प्रॉम्प्ट पर stats:::aggregate.formula टाइप करके इसे देख सकते हैं - जो तब स्पष्ट रूप से पता चलता है यह होता है कि वास्तव में, aggregate.data.frame() को प्रेषण:

[.... some code omitted ...] 
    if (is.matrix(mf[[1L]])) { 
     lhs <- as.data.frame(mf[[1L]]) 
     names(lhs) <- as.character(m[[2L]][[2L]])[-1L] 
     aggregate.data.frame(lhs, mf[-1L], FUN = FUN, ...) 
    } 
    else aggregate.data.frame(mf[1L], mf[-1L], FUN = FUN, ...) 
} 
<environment: namespace:stats> 
R> 
+4

वहाँ 'cbind()' के सभी कॉलम नामकरण के बिना यह करने के लिए कोई तरीका है? एकाधिक कॉलम के लिए, मुझे लगता है कि मुझे समझ में नहीं आता कि कोई 'कुल (। ~ Var, ...)' या नाम <- c ("var1", "var2", ...) 'और फिर क्यों नहीं कर सकता 'कुल (डीएफ [, नाम] ~ var, ...)'। या यह सिर्फ संभव नहीं है? – Hendy

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