2012-12-09 25 views
5

द्वारा विभाजित डेटाफ्रेम में कई कॉलम पर टी-टेस्ट लागू करें मेरे पास दो स्तरों के साथ एक कारक कॉलम वाला डेटाफ्रेम है, और कई संख्यात्मक कॉलम हैं। मैं कारक कॉलम द्वारा डेटा फ्रेम को विभाजित करना चाहता हूं और कॉलम जोड़े पर टी-टेस्ट करना चाहता हूं।कारक

उदाहरण डाटासेट puromycin का उपयोग करते हुए मैं परिणाम कुछ इस तरह देखना चाहते हैं:

Variable Treated Untreated p-value Test-statistic CI of difference**** 
Conc  0.3450 0.2763   XXX  T   XX - XX 
Rate  141.58 110.7272  xxx  T   XX - XX 

मुझे लगता है मैं PLYR का उपयोग कर एक समाधान के लिए देख रहा हूँ कि यह कर सकते हैं एक निर्गम एक अच्छा dataframe में ऊपर का परिणाम है।

(puromycin केवल दो सांख्यिक चर होते हैं, लेकिन समाधान मैं देख रहा हूँ कई सांख्यिक चर के साथ एक dataframe पर काम करेगा)

अद्यतन - मैं स्पष्ट करने के लिए मैं क्या मतलब है की कोशिश करेंगे।

मैं डेटा से जाना चाहते हैं कि इस तरह दिखेगा:

"Mean in group 1" "Mean in group 2" "P-value of difference" "N" 

var1   ##   ##   ##   ##  
var2   ##   ##   ##   ## 
var3   ##   ##   ##   ## 
var4   ##   ##   ##   ## 
var5   ##   ##   ##   ## 

शायद यह mapply मैं देख रहा हूँ के साथ कुछ है: एक परिणाम dataframe है कि इस तरह देखने के लिए

Grouping variable var1 var2 var3 var4 var5 
1   3 5 7 3 7 
1   3 7 5 9 6 
1   5 2 6 7 6 
1   9 5 7 0 8 
1   2 4 5 7 8 
1   2 3 1 6 4 
2   4 2 7 6 5 
2   0 8 3 7 5 
2   1 2 3 5 9 
2   1 5 3 8 0 
2   2 6 9 0 7 
2   3 6 7 8 8 
2   10 6 3 8 0 

क्योंकि मैं अपने डेटा फ्रेम को डेटाफ्रेम 1 और डेटाफ्रेम 2 में दो-स्तर के कारक से विभाजित करना चाहता हूं, और डेटाफ्रेम 1 और डेटाफ्रेम 2 के पहले हिस्सों में एक फ़ंक्शन (टी-टेस्ट) लागू करना चाहता हूं, और फिर डेटाफ्रेम 1 के दूसरे हिस्सों पर एक टी-टेस्ट लागू करना चाहता हूं और डेटाफ्रेम 2, और फिर थाई के लिए एक टी-टेस्ट डेटाफ्रेम 1 और डेटाफ्रेम 2 के तीसरे भाग, और कारक द्वारा विभाजित द्वारा उत्पन्न सभी कॉलम-जोड़े पर।

+0

संपादन मदद के लिए धन्यवाद। –

+1

आपने प्लीयर के साथ क्या प्रयास किया? – agstudy

+0

मुझे याद नहीं है कि मैंने केवल प्लीयर में क्या प्रयास किया था, जिसे मैं काम नहीं कर सका। मैंने जे स्टेट सॉफ़्टवेयर से प्लीयर आलेख पढ़ा है, लेकिन उदाहरणों का इस्तेमाल किया गया है जहां इसे समझने के लिए मेरे लिए बहुत जटिल है। –

उत्तर

6

हो सकता है कि इस परिणाम आप देख रहे हैं पैदा करता है:

df <- read.table(text="Group var1 var2 var3 var4 var5 
1   3 5 7 3 7 
1   3 7 5 9 6 
1   5 2 6 7 6 
1   9 5 7 0 8 
1   2 4 5 7 8 
1   2 3 1 6 4 
2   4 2 7 6 5 
2   0 8 3 7 5 
2   1 2 3 5 9 
2   1 5 3 8 0 
2   2 6 9 0 7 
2   3 6 7 8 8 
2   10 6 3 8 0", header = TRUE) 


t(sapply(df[-1], function(x) 
    unlist(t.test(x~df$Group)[c("estimate","p.value","statistic","conf.int")]))) 

परिणाम:

 estimate.mean in group 1 estimate.mean in group 2 p.value statistic.t conf.int1 conf.int2 
var1     4.000000     3.000000 0.5635410 0.5955919 -2.696975 4.696975 
var2     4.333333     5.000000 0.5592911 -0.6022411 -3.104788 1.771454 
var3     5.166667     5.000000 0.9028444 0.1249164 -2.770103 3.103436 
var4     5.333333     6.000000 0.7067827 -0.3869530 -4.497927 3.164593 
var5     6.500000     4.857143 0.3053172 1.0925986 -1.803808 5.089522 
+0

बिल्कुल मुझे क्या चाहिए, धन्यवाद! –

4

शायद तुम मिल सकता है इस उपयोगी

res <- sapply(split(Puromycin[,-3], Puromycin$state), t.test)[c(1:3,5),] 
conf.level <- sapply(sapply(split(Puromycin[,-3], Puromycin$state), t.test)[4, ], '[', 1:2) 
res <- rbind(res, conf.level.lower=conf.level[1,], conf.level.upper=conf.level[2,]) 
res 
       treated untreated 
statistic  4.297025 4.206221  
parameter  23   21   
p.value   0.00026856 0.0003968191 
estimate   70.96417 55.50182  
conf.level.lower 36.80086 28.06095  
conf.level.upper 105.1275 82.94268  
+1

धन्यवाद, लेकिन मुझे दिए गए उदाहरणों में आउटपुट की आवश्यकता है। ऐसा इसलिए है क्योंकि मुझे इसे कई संख्यात्मक चरों पर करने की ज़रूरत है, और मुझे उन्हें पंक्ति के अनुसार प्रस्तुत करने की आवश्यकता है। –