2017-05-26 14 views
0
mydf <- read.table(header=TRUE, text=" 
       id col1  col2  col3  col4 
        N 1  8  5  10 
        N 3  7  4  20 
        N 5  6  3  40 
        N 1  8  5  10 
        N 3  7  4  20 
        N 5  6  3  40 
        F 10  1  2  5 
        F 10  1  2  5 
        F 10  1  2  5 

       ") 

私はによりp値を計算することができ計算は異なるcolums

  col1  col2  col3  col4 
Mean_N 
Mean_F 
Ratio_N_F 
Pvalue_NvsF 

出力のために、サブセットの比率とp値を意味:私は平均を計算するためにmelt()を使用することができ

lapply(m[-1], function(x) t.test(x ~ m$id)) 

どうすれば最終データフレームにまとめることができますか?

+0

比はどのように定義されていますか? N/F行の場合は、両方とも同じ長さにする必要があります。 – Parfait

答えて

1

rbindを別々のアグリゲーション・コールにわたって考慮してください。以下は比を仮定し、Ratio_N_Fは、列平均の比率です。

outdf <- rbind(
    Mean_N = aggregate(.~id, mydf[mydf$id=='N',], FUN=mean)[-1], 
    Mean_F = aggregate(.~id, mydf[mydf$id=='F',], FUN=mean)[-1], 
    Ratio_N_F = aggregate(.~id, mydf[mydf$id=='N',], FUN=mean)[-1]/
       aggregate(.~id, mydf[mydf$id=='F',], FUN=mean)[-1], 
    Pvalue_NvsF = sapply(mydf[-1], function(x) t.test(x ~ mydf$id)$p.value) 
) 

outdf 
#      col1   col2  col3  col4 
# Mean_N  3.000000e+00 7.000000e+00 4.00000000 23.33333333 
# Mean_F  1.000000e+01 1.000000e+00 2.00000000 5.00000000 
# Ratio_N_F 3.000000e-01 7.000000e+00 2.00000000 4.66666667 
# Pvalue_NvsF 2.093883e-04 1.523397e-05 0.00276496 0.02178842 
関連する問題