2017-10-09 46 views
-1

首先,該數據集是否爲t檢驗的整齊形式?如何在數據子集上運行t檢驗

https://i.stack.imgur.com/tMK6R.png

其次,我試圖做一個兩個樣本t檢驗在治療A和B的時間爲3「結果1」的手段比較。我會如何去做這件事?

的樣本數據:

df <- structure(list(code = c(100, 100, 100, 101, 101, 101, 102, 102, 
     102, 103, 103, 103), treatment = c("a", "a", "a", "b", "b", "b", 
     "a", "a", "a", "b", "b", "b"), sex = c("f", "f", "f", "m", "m", 
     "m", "f", "f", "f", "f", "f", "f"), time = c(1, 2, 3, 1, 2, 3, 
     1, 2, 3, 1, 2, 3), `outcome 1` = c(21, 23, 33, 44, 45, 47, 22, 
     34, 22, 55, 45, 56), `outcome 2` = c(21, 32, 33, 33, 44, 45, 
     22, 57, 98, 65, 42, 42), `outcome 3` = c(62, 84, 63, 51, 45, 
     74, 85, 34, 96, 86, 45, 47)), .Names = c("code", "treatment", 
     "sex", "time", "outcome 1", "outcome 2", "outcome 3"), 
     class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -12L)) 
+2

請將您的數據讀入R併發布dput()的輸出而不是數據的圖像;也見[SO問題技巧](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – www

+0

'?t.test' - 在頁面底部有示例。首先嚐試,然後如果你仍然有問題發佈你的嘗試。 – Gregor

+0

@Gregor我試過了示例測試。問題在於數據的排列方式。我以爲我整理的數據格式很整潔。我的結果變量之一是在三個不同的時間。我只想比較治療a和治療b在時間= 3的結果變量1的平均值。我不知道如何做到這一點。我可以重新安排我的數據,但是,我認爲目前的格式是一個整齊的格式。你可以看看dput(),看看這個格式看起來是否整齊? – DiscoR

回答

0

首先你必須定義要測試的子集,那麼你就可以運行t檢驗。您不必像我一樣將變量存儲在變量中,但它使得t檢驗輸出更加清晰。

採用t檢驗問題

通常情況下,我建議幫助提供t.test,但由於這涉及到更復雜的子集,我已經包括瞭如何做到這一點的位置:?

var_a <- df$`outcome 1`[df$treatment=="a" & df$time==3] 
var_b <- df$`outcome 1`[df$treatment=="b" & df$time==3] 

t.test(var_a,var_b) 

輸出:

Welch Two Sample t-test 

data: var_a and var_b 
t = -3.3773, df = 1.9245, p-value = 0.08182 
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval: 
-55.754265 7.754265 
sample estimates: 
mean of x mean of y 
    27.5  51.5 
+0

謝謝!這就是我想要做的! 雖然我不斷收到此錯誤。 我已經將數據集導出到r中作爲「tidy-data」,結果變量是我數據集中的權重。 012f t.test(df $'weight' [df $ treatment ==「a」&df $ time == 3],df $'weight' [df $ treatment ==「b」&df $ time == 3],data = tidy_data) df $ weight中的錯誤:'closure'類型的對象不是子集合 – DiscoR

+0

此錯誤是變量命名差異的結果。我將您的示例數據存儲爲「df」,而您看起來像將您的數據存儲爲「tidy_data」。因此,您可以在將「df」的所有引用更改爲「tidy_data」之後嘗試重新運行t檢驗代碼,反之亦然。爲了清楚起見,我剛剛編輯了問題中提供的示例數據以存儲爲「df」。 – www

+0

非常感謝您的幫助!我現在開始工作了!你認爲我有我的數據的格式可能比較整潔嗎? 我應該閱讀哪些概念/主題來了解如何進行子集化,就像上面描述的那樣? – DiscoR

相關問題