2016-03-23 9 views
-2

:、私たちは5つの要因変数Labor Categoryについては複数の要因を1つの行に転送するにはどうすればよいですか?私は8つの変数を持つデータフレームいる

enter image description here

を持っている:残業、休日が働いて、定期的に、トレーニング、その他の勤務しました。

質問です:?複数の列を追加しながら、私はLabor Category除き、同じ値を持つ行を集約しSum_FTE変数を合計する方法を見つけることができ

すなわち、我々は、行の数を減らすことができます:

」 「Labor.CategoryTree」、「Labor.CategoryThree」、「Labor.CategoryRegular」、「Labor.CategoryTraining」、各要素の状態を示す0または1を使用します。そして、労働カテゴリ以外の同じ値を持つ行の合計FTEを合計します。

enter image description here

答えて

0

私たちは、操作することにより、グループのいずれかを実行することができます。 dplyrを使用して、グループ化変数としてgroup_byの列名を指定し、次にsummariseで「Sum_FTE」のsumを取得します。質問の後半部分について

library(dplyr) 
df1 %>% 
    group_by_(.dots= names(df1)[c(1:2,4:5)]) %>% 
    summarise(TotalFTE= sum(Sum_FTE)) 

、私たちはあなたの親切に返信用dcast(代わりに、画像ファイルのdputでデータセットを表示するにはもっと良かったはず)

library(data.table) 
setDT(df1)[, N := 1:.N, (Labor.Category)] 
dcast(df1, Med.Center+Charged.Job+Month+Pay.Period.End ~N, 
      value.var="Labor.Category, length) 
+0

感謝を使用することができます。しかし、2番目の部分では、2万以上の新しい変数を作成しました。これは、変数が正しくないことを示しています。 –

+0

@BeichenLin 2番目の部分は疑問がありました。私は適切な例がなければテストできませんでした。あなたは、実例を作成するのが難しいということから、イメージを投稿しました。 'dput(dropput(head(yourdata、10)))')とその例に基づいて予想される出力の 'dput'出力を使って投稿を更新できますか? – akrun

関連する問題