R में एक data.frame में कारकों के सभी अद्वितीय संयोजनों के लिए सारांश आँकड़े कैसे खोजें? [बन्द है]


11

मैं data.frame में कारकों के प्रत्येक अद्वितीय संयोजन के लिए एक डेटा में एक चर के सारांश की गणना करना चाहता हूं। क्या मुझे ऐसा करने के लिए प्लाई का उपयोग करना चाहिए? मैं लागू करने के विपरीत लूप का उपयोग करने के साथ ठीक हूं (); इसलिए केवल प्रत्येक अद्वितीय संयोजन का पता लगाना काफी होगा।


1
प्रश्न भ्रामक है क्योंकि आप कारकों के अद्वितीय संयोजन के बारे में पूछते हैं और फिर विवरण में आप अद्वितीय संयोजनों द्वारा सारांश के बारे में पूछते हैं।
वोजटेक

जवाबों:


7

जबकि मुझे लगता aggregateहै कि संभवत: वह समाधान है जिसकी आप मांग कर रहे हैं, यदि आप सभी संभावित कारकों के संयोजन की एक स्पष्ट सूची बनाना चाहते हैं, expand.gridतो वह आपके लिए यही करेगा। जैसे

> expand.grid(height = seq(60, 80, 5), weight = seq(100, 300, 50),
             sex = c("Male","Female"))
       height weight    sex
1      60    100   Male
2      65    100   Male
... 
30     80    100 Female
31     60    150 Female

फिर आप अपने मूल डेटा से रिकॉर्ड बाहर खींचने के लिए परिणामी डेटा फ़्रेम में प्रत्येक पंक्ति पर लूप कर सकते हैं।


11

देखें aggregateऔर by। उदाहरण के लिए, मदद फ़ाइल के लिए aggregate:

## Compute the averages according to region and the occurrence of more
## than 130 days of frost.
aggregate(state.x77,
      list(Region = state.region,
           Cold = state.x77[,"Frost"] > 130),
      mean)

1
सबसे तेज़ चलने वाला सही उत्तर
जॉन

3

यहाँ plyr समाधान है, जिसमें कई सारांश आँकड़ों को लौटाने और लंबी गणना के लिए प्रगति पट्टी बनाने का लाभ है:

library(ez) #for a data set
data(ANT)
cell_stats = ddply(
    .data = ANT #use the ANT data
    , .variables = .(cue,flanker) #uses each combination of cue and flanker
    , .fun = function(x){ #apply this function to each combin. of cue & flanker
        to_return = data.frame(
            , acc = mean(x$acc)
            , mrt = mean(x$rt[x$acc==1])
        )
        return(to_return)
    }
    , .progress = 'text'
)

धन्यवाद! यह काम किया, हालांकि मुझे डेटा.फ्रेम में कॉल में एक कॉमा को छोड़ना पड़ा। आँकड़े = ddply (.data = ords, .variables =। (प्रतीक, SysID, घंटा), .fun = फ़ंक्शन (x) {to_return = data.frame (s = sum (x लाभ) ) वापसी (to_return)}, .progress = 'text')पीआरमैंटी),=n(एक्स

1

अन्य सुझावों के अलावा, आप पैकेज describe.by()में फ़ंक्शन को psychउपयोगी पा सकते हैं । इसका उपयोग कारक चर के स्तरों पर संख्यात्मक चर पर सारांश आँकड़े दिखाने के लिए किया जा सकता है।


1

मुझे व्यक्तिगत रूप से पसंद है cast(), क्योंकि यह सरलता के कारण रिसैप पैकेज से है:

library(reshape)
cast(melt(tips), sex ~ smoker | variable, c(sd,mean, length))

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.