2017-06-29 2 views
0

私は現在、巨大なデータフレームを持つプロジェクトに取り組んでいます.16196 obsの25変数です。目標は、特定の治療ごとにデータフレーム内にある可能性のある異常値を排除することです。問題は、治療を施した柱にはすべての治療があり、治療の長さはそれぞれ異なることです。私に例を示してみましょう。同様の行をマッチさせてRの列を解体しますか?

val_lvl2:CHR "子宮頸融合(脊椎固定術)" "非外科的治療" "非外科的治療" "非外科的治療" ...

prd_num_of_days_num:NUM 167 46 46 46 167 46 46 167 46 46 ...

出力は、我々はそのval_lvl2が(100+示されていない)すべての処置を持って見ることができます(z_combined_cost_dtrmnt)

STRからです。そして、prd_num_of_days_numは、その特定の治療の長さを持っています。今私がやってみたいのは、そこにはさらに「子宮頸管融合」のデータと「非外科治療」のデータを組み合わせて、そこに小さなデータフレームを入れることです。その後、私は治療の長さに対して95%の信頼を作成し、そのCIに該当しないデータの行を削除したいと考えています。その後、データフレームを戻して、大きな1つのデータフレームを再度持ちますが、各処理の異常値はなくなります。

データフレームを壊す簡単な方法がないように思えるので、どこから始めるべきかわからないので、助けていただければ幸いです。

現在、集約関数の使用について考えています。

AGG < - 総額(=リストによってz_combined_cost_dtrmntする$ prd_num_of_days_num、(val_lvl2 = z_combined_cost_dtrmnt $ val_lvl2)、=リストによって(val_lvl3 = z_combined_cost_dtrmnt $ val_lvl3)、FUN = SD)は、このエラーを与えるしかし

:エラーaggregate.data.frame中(as.data.frame(x)は、...):複数の実引数にマッチした

TL/DR

ビッグデータフレーム "による" 仮引数 - >

小さいデータフレーム同様のユニークな値があることを念頭に置いてval_lvl2の一意の値に基づいて、同じ小さなデータフレーム内に "子宮頸管融合"の複数のインスタンスがあることを心に留めてください - >

prd_num_of_days_num各小データフレームのための処理)の - prd_num_of_days_numは、CIの外にある場合>

各一意値の行全体を削除 - >

は再び一つの大きなデータフレームにない外れ値を持つ小さなデータフレームをマージします。

+1

でデータを整理する方法の把握を取得するために開始すべきところ、これがあると思います。[MCVE] –

+0

Hey @StevenBeaupréをご提供ください!私の現在のアイデアはおそらく集計しようとしています。ここに私がこれまで持っているものがあります。 AGG < - 総額(z_combined_cost_dtrmnt $ prd_num_of_days_num、=リストによって(val_lvl2 = z_combined_cost_dtrmnt $ val_lvl2)、=リストによって(val_lvl3 = z_combined_cost_dtrmnt $ val_lvl3)、FUN = SD) ただし、このエラーを与えること:集計で エラー.data.frame(as.data.frame(x)、...): 仮引数 "by"が複数の実際の引数と一致する – nazgulian

答えて

0

25個の変数を持つ1つのデータフレーム(df)があり、x個の小さなデータフレームに分割する必要があります。xは、残りの24個の変数を含むが、治療のタイプ。正しい?

treatment1 <- df[df$val_lvl2 == "Cervical Fusion (Spinal Fusion)"] 
treatment2 <- df[ds$val_lvl2 =="Non-Surgical Treatment"] 
# etc... 

あり、より簡潔であり、それを行うには「より良い」の方法は、私はあなたがStackOverflowのへようこそR.

+0

はい、正確です!私は実際にあなたがそこでやったことをやっていることについて実際に考えていました。しかし、val_lvl2には約150の治療があるので、私はもっと効率的で一般的なものを見つけることを望んでいました。 このパスに従うものがあります。 大きなデータフレーム - >一意のval_lvl2に基づくより小さいデータフレーム - >小さなデータフレームごとにprd_num_of_days_numに基づいて95 CIを作成する - > prd_num_of_days_numがCIの外にある場合は - >外れ値のない小さなデータフレームをマージする再び1つの大きなデータフレームに変換します。 テキストが私がそれをしたいと思うように間隔を置いていない理由はわかりません... – nazgulian

+0

申し訳ありませんが、それはあなたが達成したいと思っているものの周りに私の頭を包み込むのは少し難しいです。この投稿を削除し、簡単に複製できる小規模なサンプルコードで新しい投稿を作成することをお勧めします。上記のことをあなたのすべてのケースですばやく行うには、次のようにしてください: 'treat < - unique(df $ val_lvl2) for i in c(1:length(treatment)){ assign(paste ( "df_"、治療[[i]]、sep = '')、df [df ==治療[)] } – 20salmon

+0

ありがとう!投稿されたものを解凍できない場合、その小さなスニペットが私に届き、この掲示板に戻ってきます。少し複雑ですので、私は努力を感謝します! – nazgulian

関連する問題