2017-08-12 17 views
0

一部のデータの初期探索を実行しようとしています。私は、連続変数の1つの方法を因子に変換し、バンドごとに周波数を計算することによって分析しています。dplyrXdfを使用して連続変数をカテゴリに変換する

私はdplyrXdfでこれを行うしたいと思いますが、私は以下のコードは

を作品データフレームとしての私のサンプルデータをインポート

sample_data <- RxXdfData("./data/test_set.xdf") #sample xdf for testing 
as_data_frame <- rxXdfToDataFrame(sample_data) #same data as dataframe 

# Calculate freq by Buildings Sum Insured band 

をしようとしています何のために通常のdplyrと同じように動作していないよう

buildings_ad_fr <- as_data_frame %>% 
    mutate(bd_cut = cut(BD_INSURED_VALUE, seq(from = 150000, to = 10000000,by = 5000000))) %>% 
    group_by(bd_cut) %>% 
    summarise(exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE), 
      ad_pd_f = sum(ACT_AD_PD_CLAIM_COUNT)/sum(BENEFIT_EXPOSURE, na.rm = TRUE)) 

しかし、私は、データのXDFバージョンを使用して同じことを行うカント

buildings_ad_fr_xdf <- sample_data %>% 
     mutate(bd_cut = cut(BD_INSURED_VALUE, seq(from = 150000, to = 10000000,by = 5000000))) %>% 
     group_by(bd_cut) %>% 
     summarise(exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE), 
       ad_pd_f = sum(ACT_AD_PD_CLAIM_COUNT)/sum(BENEFIT_EXPOSURE, na.rm = TRUE)) 

変換引数にbd_cut = cut(BD_INSURED_VALUE, seq(from = 150000, to = 10000000,by = 5000000))を渡して新しい列を作成するには、rxDataStepを使用することが考えられますが、中間ステップを持つ必要はありません。

私は今、私はgroup_by式の前に.rxArgs機能を使用してみましたが、それはまた、XDFファイルに

buildings_ad_fr <- sample_data %>% 
    mutate(sample_data,.rxArgs = list(transforms = list(bd_cut = cut(BD_INSURED_VALUE, 
                    seq(150000, 
                     10000000, 
                     5000000)))))%>% 
    group_by(bd_cut) %>% 
    summarise(exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE), 
      ad_pd_f = sum(ACT_AD_PD_CLAIM_COUNT)/sum(BENEFIT_EXPOSURE, na.rm = TRUE)) 

どちらの回動作するようには思えない、それはエラーにError in summarise.RxFileData(., exposure = sum(BENEFIT_EXPOSURE, na.rm = TRUE),: with xdf tbls only works with named variables, not expressions

を与えますこのパッケージが変数を因数分解できることは知っていますが、私はそれを使って連続変数を分割する方法がわかりません

誰でもこの方法を知っていますか?

答えて

1

mutateは問題ありません。 summariseはXDFファイルごとに異なるです:

  • 内部summariseは自動的にNASに削除され、デフォルトでrxCuberxSummaryを実行します。 na.rm=TRUEは必要ありません。

  • 式を集計することはできません。

xdf %>% 
    group_by(*) %>% 
    summarise(expos=sum(expos), pd=sum(clms)) %>% 
    mutate(pd=pd/expos) 

私もきたばかりupdated dplyXdf to 0.10.0 beta、HDFS /スパークのために、いくつかの気の利いたユーティリティ関数と一緒に0.7 dplyrサポートが追加されています解決策は、集計を実行し、その式を計算することです。既に使用していない場合は、チェックアウトしてください。正式リリースは、次のMRSバージョンが出てくるときに起こるはずです。

+0

もう一度おねがいします!あなたのソリューションはうまくいきました - そして、dplyrxdfのすばらしいもの - すぐに更新するつもりです! –

+0

dplyrXdf 0.10の新機能については、[blog posts](http://blog.revolutionanalytics.com/2017/08/dplyrxdf-0100-beta-prerelease.html)を参照してください。 –

関連する問題