2016-11-15 10 views
0

私はデータフレームを持ちます.1つは181個のobs。と521個の変数を持ち、もう1個のデータフレームは2個の変数と150個のobsを持ちます。最初のデータフレームは完全なデータで、2番目のデータフレームは最初のデータフレームの連続変数名です。私は、連続変数の平均、分散、中央値および他の統計量を計算したいと思います。たとえば:データフレーム内の150変数の統計

df1: 
    ha_be me_cu par_pri fer_ex 
     1  1000  300   5 
     0  500  150   7 
     0  300  400   5 
     0  900   80   6 
     1  2100  50   3 
     1  3400  60   2 
     0  390  800   1 
     1  400  750   4 

df_cont: 
     Cod variable.names 
     3.2  me_cu 
     3.3  par_pri 

は、どのように私はdf_contで名前を使用してdf1からすべてcontinuos変数を抽出し、すべての基本統計量を計算することができますか?私はforループで試していましたが、正しく動作しません。

答えて

1

我々はcharacterselect_(.dots = as.character(df_cont$variable.names))

に変換し、 'DF1' の列を維持し、 'variable.names' の factorの場合、 summarise_eachで基本的な統計

library(dplyr) 
df1 %>% 
    select_(.dots = df_cont$variable.names) %>% 
    summarise_each(funs(mean, sum)) #specify the functions 

を取得するためにselectを使用することができます

summarise_eachで機能を個別に渡すことに加えて、minmaxmedianmeanなど

となるように summaryを呼び出すこともできます
df1 %>% 
    select_(.dots = df_cont$variable.names) %>% 
    summary 
1

またはこの:

summary.df <- as.data.frame(summary(df1[df_cont$variable.names]))[,2:3] 
names(summary.df) <- c('variable.name', 'stat') 

    variable.name stat 
1   me_cu Min. : 300.0 
2   me_cu 1st Qu.: 397.5 
3   me_cu Median : 700.0 
4   me_cu Mean :1123.8 
5   me_cu 3rd Qu.:1275.0 
6   me_cu Max. :3400.0 
7  par_pri Min. : 50.0 
8  par_pri 1st Qu.: 75.0 
9  par_pri Median :225.0 
10  par_pri Mean :323.8 
11  par_pri 3rd Qu.:487.5 
12  par_pri Max. :800.0 
+0

私がいないとき、私はそれを行うことができますどのように列車の番号を知っていますか? – Dan

+0

2:3は、要約データフレームの最初の列を破棄するために使用されるだけで、列の番号を知る必要はありません。列の番号とは何の関係もありません。 –

2

ます。また、(あなたがすべてのcontinuosを持っている場合のみ)この方法でそれを行うことができます。

df1<-lapply(df1, as.numeric) 
mean<-vapply(df1, mean, na.rm=TRUE, numeric(1)) 
median<-vapply(df1, median, na.rm=TRUE, numeric(1)) 
des<-vapply(df1,sd,na.rm=T,numeric(1)) 
var<-vapply(df1, var, na.rm=TRUE, numeric(1)) 
maxi<-vapply(df1, max, na.rm=TRUE, numeric(1)) 
min<-vapply(df1, min, na.rm=TRUE, numeric(1)) 

cont<-data.frame(mean,median,des,var,max,min) 
関連する問題