簡體   English   中英

R中的多個成對T檢驗(按類別分層)顯示了數據集的變量和p值部分

[英]Multiple Paired T-Tests in R stratified by category showing variable and p-values part of the dataset

編碼器,

我有一個數據集,記錄了全球經濟衰退前后每個國家/地區的汽車類型。

我想做一個配對的t檢驗,比較每種汽車類型(“ cartype”)之前( Before )和之后( After )的所有國家( Country )的汽車數量。 此外,每個t檢驗的p值結果應打印到新的數據框中。

我認為需要建立一個數組/ do-loop,但即使是t檢驗的編碼也很麻煩。 救命!

謝謝!

##insert data
example<- read.table (header=TRUE, text=" Country Cartype before after  
UAE LHR 17  91
UAE AUH 50  30
UAE DXB 72  85
UAE DOH 19  8
UAE AMS 72  98
UAE FRA 6   3
UAE CDG 14  39
UAE BOM 81  65
UAE DEL 31  55
UAE ABV 85  50
IN  LHR 42  100
IN  AUH 6   96
IN  DXB 36  82
IN  DOH 15  20
IN  AMS 33  76
IN  FRA 17  1
IN  CDG 71  52
IN  BOM 51  84
IN  DEL 29  25
IN  ABV 74  71
PK  LHR 35  15
PK  AUH 27  83
PK  DXB 67  8
PK  DOH 98  51
PK  AMS 44  16
PK  FRA 41  14
PK  CDG 80  52
PK  BOM 76  74
PK  DEL 42  91
PK  ABV 50  95
")


## calculate how many cartypes in total
n=length(table(example$Cartype)) 

## create a list with empty object to store the t test result later
result=vector(mode = list, length = n) 

## use do loop to perform t-test by cartype
for (i in 1:n) 
{
    y1=example$before[which(example$cartype==i)]
    y2=example$after[which(example$cartype==i)]
    result[[i]]=t.test(y1,y2, paired=T)
}
### print the result
result 

感謝格式化的努力

首先,請注意R是區分大小寫的,因此cartypeCartype不同

我認為這段代碼就是您想要組合的代碼:

n=length(table(example$Cartype)) 
result=vector(length = n) 
cartype <- unique(example$Cartype)
for (i in 1:n) 
{
        y1=example[example$Cartype==cartype[[i]],'before']
        y2=example[example$Cartype==cartype[[i]],'after']
        result[[i]]=t.test(y1,y2, paired=T)$p.value
}
df <- data.frame(row.names = cartype,p.value=result)

      p.value
LHR 0.3273000
AUH 0.3256148
DXB 1.0000000
DOH 0.3694496
AMS 0.5884953
FRA 0.1576278
CDG 0.6980914
BOM 0.7642104
DEL 0.2718261
ABV 0.9292062

您可以將其縮短為:

p.values=c(
        by(example,
           example$Cartype,
           FUN=function(x) t.test(x$before,x$after, paired=T)$p.value))
df <- data.frame(p.values)

     p.values
ABV 0.9292062
AMS 0.5884953
AUH 0.3256148
BOM 0.7642104
CDG 0.6980914
DEL 0.2718261
DOH 0.3694496
DXB 1.0000000
FRA 0.1576278
LHR 0.3273000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM