4

これと非常によく似た質問を見てきましたが、この単純な問題をまだ理解できません。

グループ化変数に対して対応のある t 検定を実行し、結果をデータフレームに保存したいと考えています。tidyパッケージ内のコマンドbroomはこれを行いますが、以下のコードを実行すると、出力は各時点で同じになります。ループを使用して実行できることはわかっていますが、tidyここで使用して、何が起こっているのかを理解したいと考えています。

再現可能な例を次に示します。

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)))         

結果の出力は、各時点で同じです。

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

簡単な修正があると確信していますが、それが何であるかはわかりません。どんな提案でも素晴らしいでしょう。ありがとう

4

1 に答える 1