2017-10-02 3 views
1

サンプル数、平均値、標準偏差、変動係数、下限および上限の95%信頼限界、および四分位数を計算しようとしています。このデータは各列に設定され、新しいデータフレームに格納されます。カラム間の平均、標準偏差、nなどを計算し、新しいデータフレームを作成します。

以下の数字は、必ずしもすべて正しいとは限りません。&私はそれらをすべて入力しませんでした。例を示します。これらの値はボックスプロットを作成するために使用されるため、四分位数の必要性があります。行と列は最後にヘッダーになります。以下の例を参照してください。ここで

は構造体である:

B1 <- c(8, 6, 13, 6, 27, 104, 18, 3) 
B2 <- c(2, 13, 1, 64, 127, 24, 4, 3) 
B3 <- c(8, 16, 113, 680, 227, 310, 138, 30) 
B4 <- c(238, 46, 613, 69, 7, 14, 4, 8) 

x <- data.frame(B1, B2, B3, B4) 

> head(x) 
    B1 B2 B3 B4 
1 8 2 8 238 
2 6 13 16 46 
3 13 1 113 613 
4 6 64 680 69 
5 27 127 227 7 
6 104 24 310 14 

所望の出力:

> y 
        B1 B2 B3 B4 
n     8  8  8 8 
mean    23 30 190 125 
Stand dev   5 2  34  2 
CoeffofVariation 0.3 0.4 0.7 1.3 
LowerConfInterval 2 20 35 45 
UpperConfInterval 50 120 122 120 
LowerQuartile 
Median 
Upper Quantile 
Inter Quartile Range 
Minimum 
Maximum 
Regression equation 
+7

を、関心の各統計で命名ベクトルを返す関数を書きます。そして、 'sapply'を使ってdata.frameをループします。 'myFunc < - function(x)c(平均=平均(x)、n =長さ(x)、中央値=中央値(x)) '、次に' sapply(dat、myFunc) 'です。これを 'data.frame'にラップして、マトリックスではなくdata.frameを取得します。 – lmo

+6

関連:[* dplyr - 複数の要約関数*](https://stackoverflow.com/q/40375390/2204410) – Jaap

+2

"...これらの値はボックスプロットの作成に使用されます"次にggplot2の ' geom_boxplot'? http://ggplot2.tidyverse.org/reference/geom_boxplot.html –

答えて

0

あなたはこのようなもの使用することができます

B1 <- c(8, 6, 13, 6, 27, 104, 18, 3) 
B2 <- c(2, 13, 1, 64, 127, 24, 4, 3) 
B3 <- c(8, 16, 113, 680, 227, 310, 138, 30) 
B4 <- c(238, 46, 613, 69, 7, 14, 4, 8) 

combDF <- data.frame(cbind(B1,B2,B3,B4)) 

data_long <- gather(combDF, factor_key=TRUE) 

data_long%>% group_by(key)%>% 
    summarise(mean= mean(value), sd= sd(value), max = max(value),min = min(value)) 

を、出力は次のようになります。

# A tibble: 4 x 5 
    key mean  sd max min 
    <fctr> <dbl>  <dbl> <dbl> <dbl> 
1  B1 23.125 33.60458 104  3 
2  B2 29.750 44.59260 127  1 
3  B3 190.250 224.72253 680  8 
4  B4 124.875 212.08653 613  4 

あなたが見ている信頼レベルは指定していませんが、投稿したコードは問題に適応できます。言及したLMOとして

+0

'tidyr'パッケージ関数' gather'はすばらしいです! – kslayerr

1

、あなたはこのように、sapplyを使用することができます。

sapply(x, function(x) c("Stand dev" = sd(x), 
         "Mean"= mean(x,na.rm=TRUE), 
         "n" = length(x), 
         "Median" = median(x), 
         "CoeffofVariation" = sd(x)/mean(x,na.rm=TRUE), 
         "Minimum" = min(x), 
         "Maximun" = max(x), 
         "Upper Quantile" = quantile(x,1), 
         "LowerQuartile" = quantile(x,0) 
        ) 
) 

出力:

      B1   B2   B3   B4 
Stand dev   33.604581 44.592600 224.722527 212.086531 
Mean     23.125000 29.750000 190.250000 124.875000 
n      8.000000 8.000000 8.000000 8.000000 
Median    10.500000 8.500000 125.500000 30.000000 
CoeffofVariation  1.453171 1.498911 1.181196 1.698391 
Minimum    3.000000 1.000000 8.000000 4.000000 
Maximun    104.000000 127.000000 680.000000 613.000000 
Upper Quantile.100% 104.000000 127.000000 680.000000 613.000000 
LowerQuartile.0%  3.000000 1.000000 8.000000 4.000000 
関連する問題