2017-11-28 19 views
0

페어링 된 t 테스트를 사용하여 3 번의 실험 결과를 비교하고 있습니다. 일부 값이 누락 된 경우 그러나, 나는 어떤 결과를 얻는 없다하고 (있습니다 NA)페어 티드 t.test는 NA에 대한 결과가 없습니다

데이터 :

G1/2/3는 독립적 인 측정 아니지만, 테스트 한 다른 유전자를 표현하는 것으로
dat <- read.table(text='sample G1 G2 G3 
S1 0.002458717 0.01045769 0.003770503 
S2 0.010009784 0.02465088 0.011505804 
S3 NA   NA   0.006403423 
S1 0.003458717 0.01145769 0.004770503 
S2 0.011009784 0.02565088 0.012505804 
S3 NA   NA   0.007403423 
S1 0.001458717 0.00945769 0.002770503 
S2 0.009009784 0.02365088 0.010505804 
S3 NA   NA   0.0054034232', header=TRUE) 

. 그것들은 관련이 없으며 각 G는 자신의 것이기 때문에 필요합니다.

t.test :

sig<-lapply(dat[-1], function(x) 
    pairwise.t.test(x, dat$sample, 
        p.adjust.method = "BH")) 



> sig 
    $G1 

     Pairwise comparisons using t tests with pooled SD 

    data: x and dat$sample 

     S1 S2 
    S2 - - 
    S3 - - 

    P value adjustment method: BH 

    $G2 

     Pairwise comparisons using t tests with pooled SD 

    data: x and dat$sample 

     S1 S2 
    S2 - - 
    S3 - - 

    P value adjustment method: BH 

    $G3 

     Pairwise comparisons using t tests with pooled SD 

    data: x and dat$sample 

     S1  S2  
    S2 0.00024 -  
    S3 0.01803 0.00117 

P value adjustment method: BH 

G1/2 S1/S3와 2 사이의 비교가없는 이유 값이 누락으로 I는 이해한다. 그러나 S1과 S2를 비교 한 결과가없는 이유는 무엇입니까?

감사합니다.

+1

NA를 제거 할 수 있습니까? pairwise.t.test (tmp [, 2], tmp $ sample) } lapply (2 : 4, function (x) { tmp <- na.omit (dat [, c (1, x)] })' – Jimbou

+0

p 값을 얻으려면 그룹당 최소 2 회의 관찰이 필요합니다. 예에서 S3은 G1과 G2에 대해 완전하게 누락되었습니다. 따라서 관측치가있는 요인 수준을 제거하십시오 <2. – Jimbou

+0

Thanks @ Jimbou. 나는 최소한 2 가지의 축약이 필요하다는 것을 알고 있습니다. 따라서 하나의 그룹이 NA를 가진 그룹 들간의 비교를위한 p 값을 얻지는 않을 것입니다. 이것은 문제가되지 않습니다. 그러나, 나는 3 개의 관측치 (S1 대 S2)를 가진 그룹을 비교할 때라도 p 값을 얻지 못합니다. 나는 NAs –

답변

0

pairwise.t.test의 경우 응답 및 그룹화 벡터가 필요합니다. 그래서 문제는 데이터 형식에 있으며 NA이 아닙니다. 그에 따라 dat의 데이터를 변환하면됩니다 (자세한 내용은 ?pairwise.t.test 참조). NA의 자동 (기본값)을 생략한다

# Convert wide to long dataframe, then select values 
val <- stack(dat, select = -sample)$values; 

# Sample labels (the grouping vector) 
grp <- rep(dat$sample, 3); 


pairwise.t.test(val, grp, p.adjust.method = "BH"); 
#  
#  Pairwise comparisons using t tests with pooled SD 
#  
#data: val and grp 
# 
# S1  S2 
#S2 0.0031 - 
#S3 0.8160 0.0319 

참고

여기서베이스 R stack 함수를 사용하여 하나의 방법이다.

+0

Hi를 제거하는 솔루션을 구현하려고 노력할 것입니다. 고마워. 제 예제가 명확하지 않다고 생각합니다. G1/2/3은 실제로 관련이 없습니다. 그것들은 제가 비교하고 싶은 3 가지 측정 값이 아닙니다. 그래서 lapply를 사용하여 각 열마다 쌍으로 된 t 테스트를 수행합니다. 데이터가 실제로 긴 형식입니다. –