जवाबों:
मैं उपयोग करता हूं table
और prop.table
, लेकिन पैकेज CrossTable
में gmodels
आप एसएएस के करीब भी परिणाम दे सकते हैं। इस लिंक को देखें ।
इसके अलावा, "एक साथ कई चर के लिए वर्णनात्मक आंकड़े उत्पन्न करने के लिए," आप summary
फ़ंक्शन का उपयोग करेंगे ; जैसे, summary(mydata)
।
आधार आर में डेटा संक्षेप करना केवल एक सिरदर्द है। यह उन क्षेत्रों में से एक है जहां एसएएस काफी अच्छी तरह से काम करता है। आर के लिए, मैं plyr
पैकेज की सिफारिश करता हूं ।
SAS में:
/* tabulate by a and b, with summary stats for x and y in each cell */
proc summary data=dat nway;
class a b;
var x y;
output out=smry mean(x)=xmean mean(y)=ymean var(y)=yvar;
run;
साथ plyr
:
smry <- ddply(dat, .(a, b), summarise, xmean=mean(x), ymean=mean(y), yvar=var(y))
मैं एसएएस का उपयोग नहीं करता हूं; इसलिए मैं इस पर टिप्पणी नहीं कर सकता कि निम्नलिखित उत्तर दें SAS PROC FREQ
, लेकिन ये दो त्वरित रणनीतियाँ हैं जो डेटा में किसी चर का वर्णन करने के लिए त्वरित रणनीति हैं।
describe
में Hmisc
संख्यात्मक और गैर संख्यात्मक डेटा सहित चर का एक उपयोगी सारांश प्रदान करता हैdescribe
में psych
संख्यात्मक डेटा के लिए वर्णनात्मक आँकड़े उपलब्ध कराता है> library(MASS) # provides dataset called "survey"
> library(Hmisc) # Hmisc describe
> library(psych) # psych describe
निम्नलिखित का उत्पादन निम्न है Hmisc
describe
:
> Hmisc::describe(survey)
survey
12 Variables 237 Observations
----------------------------------------------------------------------------------------------------------------------
Sex
n missing unique
236 1 2
Female (118, 50%), Male (118, 50%)
----------------------------------------------------------------------------------------------------------------------
Wr.Hnd
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
236 1 60 18.67 16.00 16.50 17.50 18.50 19.80 21.15 22.05
lowest : 13.0 14.0 15.0 15.4 15.5, highest: 22.5 22.8 23.0 23.1 23.2
----------------------------------------------------------------------------------------------------------------------
NW.Hnd
n missing unique Mean .05 .10 .25 .50 .75 .90 .95
236 1 68 18.58 15.50 16.30 17.50 18.50 19.72 21.00 22.22
lowest : 12.5 13.0 13.3 13.5 15.0, highest: 22.7 23.0 23.2 23.3 23.5
----------------------------------------------------------------------------------------------------------------------
[ABBREVIATED OUTPUT]
फिर नीचे psych
describe
संख्यात्मक चर के लिए आउटपुट है :
> psych::describe(survey[,sapply(survey, class) %in% c("numeric", "integer") ])
var n mean sd median trimmed mad min max range skew kurtosis se
Wr.Hnd 1 236 18.67 1.88 18.50 18.61 1.48 13.00 23.2 10.20 0.18 0.36 0.12
NW.Hnd 2 236 18.58 1.97 18.50 18.55 1.63 12.50 23.5 11.00 0.02 0.51 0.13
Pulse 3 192 74.15 11.69 72.50 74.02 11.12 35.00 104.0 69.00 -0.02 0.41 0.84
Height 4 209 172.38 9.85 171.00 172.19 10.08 150.00 200.0 50.00 0.22 -0.39 0.68
Age 5 237 20.37 6.47 18.58 18.99 1.61 16.75 73.0 56.25 5.16 34.53 0.42
मैं {EPICALC} से कोडबुक फ़ंक्शन का उपयोग करता हूं, जो एक संख्यात्मक चर के लिए सारांश आँकड़े और स्तर लेबल और कारकों के लिए कोड के साथ एक आवृत्ति तालिका देता है। http://cran.r-project.org/doc/contrib/Epicalc_Book.pdf (p.50 देखें) इसके अलावा, यह बहुत उपयोगी है क्योंकि यह मात्रात्मक चर के लिए एसडी प्रदान करता है।
का आनंद लें !
codebook()
इसे बाहर देता है। 1 मुद्दा यह है कि na
एस को गिरा दिया जाता है, जिसे आप अपने आउटपुट में शामिल कर सकते हैं। W / this (कम से कम w / कारकों) से निपटने के लिए 1 तरीका है ? Recode.is.na 1st (जैसे, "लापता"); संख्यात्मक चर के लिए, आप तुरंत स्तंभ w / बाईं ओर एक तार्किक मान के आधार पर एक नया चर बना सकते हैं is.na()
, फिर चला सकते हैं codebook()
। यह एक kluge का एक सा है, हालांकि।
आप मेरे सारांश पैकेज ( सीआरएएन लिंक ) की जांच कर सकते हैं जिसमें एक कोडबुक जैसा फ़ंक्शन शामिल है, जिसमें मार्कडाउन और एचटीएमएल प्रारूपण विकल्प हैं।
install.packages("summarytools")
library(summarytools)
dfSummary(CO2, style = "grid", plain.ascii = TRUE)
+------------+---------------+-------------------------------------+--------------------+-----------+
| Variable | Properties | Stats / Values | Freqs, % Valid | N Valid |
+============+===============+=====================================+====================+===========+
| Plant | type:integer | 1. Qn1 | 1: 7 (8.3%) | 84/84 |
| | class:ordered | 2. Qn2 | 2: 7 (8.3%) | (100.0%) |
| | + factor | 3. Qn3 | 3: 7 (8.3%) | |
| | | 4. Qc1 | 4: 7 (8.3%) | |
| | | 5. Qc3 | 5: 7 (8.3%) | |
| | | 6. Qc2 | 6: 7 (8.3%) | |
| | | 7. Mn3 | 7: 7 (8.3%) | |
| | | 8. Mn2 | 8: 7 (8.3%) | |
| | | 9. Mn1 | 9: 7 (8.3%) | |
| | | 10. Mc2 | 10: 7 (8.3%) | |
| | | ... 2 other levels | others: 14 (16.7%) | |
+------------+---------------+-------------------------------------+--------------------+-----------+
| Type | type:integer | 1. Quebec | 1: 42 (50%) | 84/84 |
| | class:factor | 2. Mississippi | 2: 42 (50%) | (100.0%) |
+------------+---------------+-------------------------------------+--------------------+-----------+
| Treatment | type:integer | 1. nonchilled | 1: 42 (50%) | 84/84 |
| | class:factor | 2. chilled | 2: 42 (50%) | (100.0%) |
+------------+---------------+-------------------------------------+--------------------+-----------+
| conc | type:double | mean (sd) = 435 (295.92) | 95: 12 (14.3%) | 84/84 |
| | class:numeric | min < med < max = 95 < 350 < 1000 | 175: 12 (14.3%) | (100.0%) |
| | | IQR (CV) = 500 (0.68) | 250: 12 (14.3%) | |
| | | | 350: 12 (14.3%) | |
| | | | 500: 12 (14.3%) | |
| | | | 675: 12 (14.3%) | |
| | | | 1000: 12 (14.3%) | |
+------------+---------------+-------------------------------------+--------------------+-----------+
| uptake | type:double | mean (sd) = 27.21 (10.81) | 76 distinct values | 84/84 |
| | class:numeric | min < med < max = 7.7 < 28.3 < 45.5 | | (100.0%) |
| | | IQR (CV) = 19.23 (0.4) | | |
+------------+---------------+-------------------------------------+--------------------+-----------+
संपादित करें
सारांश के नए संस्करणों में , freq()
फ़ंक्शन (जो कि मूल प्रश्न के संबंध में अधिक से अधिक-बिंदु-से-सीधी आवृत्ति तालिकाओं का उत्पादन करता है) डेटा फ़्रेम के साथ-साथ एकल चर भी स्वीकार करता है। क्रॉस-टेब्यूलेशन (जो freq भी करता है) के लिए, ctable()
फ़ंक्शन देखें ।
freq(CO2)
प्रकार : आदेशित कारक
Freq % Valid % Valid Cum % Total % Total Cum
Qn1 7 8.33 8.33 8.33 8.33
Qn2 7 8.33 16.67 8.33 16.67
Qn3 7 8.33 25.00 8.33 25.00
Qc1 7 8.33 33.33 8.33 33.33
Qc3 7 8.33 41.67 8.33 41.67
Qc2 7 8.33 50.00 8.33 50.00
Mn3 7 8.33 58.33 8.33 58.33
Mn2 7 8.33 66.67 8.33 66.67
Mn1 7 8.33 75.00 8.33 75.00
Mc2 7 8.33 83.33 8.33 83.33
Mc3 7 8.33 91.67 8.33 91.67
Mc1 7 8.33 100.00 8.33 100.00
<NA> 0 0.00 100.00
Total 84 100.00 100.00 100.00 100.00
सीओ 2 $ प्रकार
प्रकार : कारक
Freq % Valid % Valid Cum % Total % Total Cum
Quebec 42 50.00 50.00 50.00 50.00
Mississippi 42 50.00 100.00 50.00 100.00
<NA> 0 0.00 100.00
Total 84 100.00 100.00 100.00 100.00
सीओ 2 $ उपचार
प्रकार : कारक
Freq % Valid % Valid Cum % Total % Total Cum
nonchilled 42 50.00 50.00 50.00 50.00
chilled 42 50.00 100.00 50.00 100.00
<NA> 0 0.00 100.00
Total 84 100.00 100.00 100.00 100.00
सभी के सुझाव के लिए धन्यवाद। मैंने या तो टेबल या Rcmdr के अंकसूत्र समारोह का उपयोग करके समाप्त किया और साथ ही लागू किया:
apply(dataframe[,c('need_rbcs','need_platelets','need_ffp')],2,table)
यह बहुत अच्छा काम करता है और बहुत असुविधाजनक नहीं है। हालाँकि मैं इनमें से कुछ अन्य समाधानों को आजमाऊंगा!