2016-04-12 29 views
3

Buna benzer soruları gördüm ama yine de bu basit problemi çözemiyorum.Düzenli değişken kullanarak gruplandırma değişkeninin üstündeki döngü

Gruplama değişkeninin üzerinde eşleştirilmiş t-testlerini çalıştırmak ve sonuçları bir veri alanında saklamak istiyorum. broom paketindeki tidy komutu bunu yapar, ancak aşağıdaki kodu çalıştırdığımda çıktı her zaman noktası için aynıdır. Bir döngü kullanarak yapabileceğimi biliyorum ama tidy'u burada kullanmak ve neler olduğunu anlamak istiyorum.

R>head(z) 
Source: local data frame [4 x 7] 
Groups: time1 [4] 

    time1 estimate statistic  p.value parameter conf.low conf.high 
    (int)  (dbl)  (dbl)  (dbl)  (dbl)  (dbl)  (dbl) 
1  1 -22.48413 -11.69648 1.660608e-21  119 -26.29047 -18.67779 
2  2 -22.48413 -11.69648 1.660608e-21  119 -26.29047 -18.67779 
3  3 -22.48413 -11.69648 1.660608e-21  119 -26.29047 -18.67779 
4  4 -22.48413 -11.69648 1.660608e-21  119 -26.29047 -18.67779 

kolay bir düzeltme ama ne olduğundan emin değil olduğuna eminim:

library(dplyr) 
library(broom) 
df <- data.frame (time1=rep(1:4,30), 
       sbp=runif(120, 100, 150), 
       sbp1=runif(120, 120, 170)) 

R>head(df) 
    time1  sbp  sbp1 
1  1 146.9411 151.4842 
2  2 102.7216 139.3380 
3  3 125.7126 167.1806 
4  4 126.0086 146.2177 
5  1 149.9213 139.7968 
6  2 117.6843 135.2726 



z<-df %>% 
arrange(time1) %>% 
group_by(time1) %>% 
do(tidy(t.test(df$sbp,df$sbp1,paired=TRUE)))   

Sonuç çıktısı her zaman noktası için aynıdır: Burada

bir tekrarlanabilir örnektir , herhangi bir öneri harika olurdu. Teşekkür

cevap

5

Eğer dplyr dahili olarak kullanılan veri kümesi başvurmak için isterseniz, . kullanmak gerekir:

z <- df %>% 
     arrange(time1) %>% 
     group_by(time1) %>% 
     do(tidy(t.test(.$sbp, .$sbp1,paired=TRUE)))  
Source: local data frame [4 x 7] 
Groups: time1 [4] 

    time1 estimate statistic  p.value parameter conf.low conf.high 
    (int)  (dbl)  (dbl)  (dbl)  (dbl)  (dbl)  (dbl) 
1  1 -22.45646 -6.339261 6.307292e-07  29 -29.70157 -15.21135 
2  2 -19.85310 -4.346528 1.550448e-04  29 -29.19485 -10.51136 
3  3 -21.00503 -5.996117 1.609850e-06  29 -28.16968 -13.84037 
4  4 -23.56341 -6.037170 1.438441e-06  29 -31.54606 -15.58077 

Eğer dplyr tarafından yapılan gruplandırma görmezden ve veri kümesi her zaman tamamlamak için kullanmak df$sbp atıfta bulunarak. Bu, takılı t testinin neden her zaman aynı olduğunu açıklar.