私は、従業員が現在雇用されているかどうかを判断するために、一連のデータを実行する非常に複雑なRループのように見えます(私はデータアナリストです現在データアナリストとデータサイエンティストとして働いています)。もっと複雑にするために、私は彼らが特定のジョブコードで呼ばれているかどうかを知りたいと思います。私は1)必要なものと2)驚くべきものを概説します。Rダミーコードフィールドを作成するループ
サンプルデータ:
1 = EMPLIDの最新期間:
EMPLID Jobcode Job.Entry.Date Term.Date 1 147935 100880 2016-09-04 <NA> 2 147935 100884 2015-07-27 <NA> 3 147935 100887 2013-07-28 <NA> 4 147935 100887 2013-07-28 2015-03-23 5 147935 100889 2012-12-18 <NA> 6 1510844 100890 2013-06-30 <NA> 7 1510844 100890 2013-07-21 <NA> 8 1510844 100890 2016-07-10 <NA> 9 1510844 100895 2006-01-04 <NA> 10 1510844 100895 2016-04-10 <NA> 11 1510844 100895 2016-09-04 <NA>
1)私が呼び出しを、新しいフィールドを作成してみましょうしたいが、以下が満たされる "TermCode" です。最も最近のJob.Entry.Date(すなわち、EMPLIDがTERMED)の後の日付
0 = EMPLIDの最新のJob.Entry.Dateは、最新のTerm.Dateの後にある(つまり、EMPLIDがTERMEDではない)。
いくつかのEMPLIDに複数のTerm.DatesとMultiple Job.Entry.Datesがあり、それらが常に同じ行にあるとは限らないため、複雑です。
2)1と同じこと私は、次の生成に「TermCode」をしたい除い:
1 = EMPLIDの最新Term.Dateは、最新のJob.Entry.Dateた後であり、1でありますジョブコードの%c( "101545"、 "101318"、 "100897"、 "100895"、 "100891"、 "100885"、 "100884"、 "100880"、 "100879"、 "100875" "、" 100873 "))(つまり、これらのジョブコードの1つとしてEMPLID TERMED)
0 = EMPLIDの最新のJob.Entry.Dateは、最新のTerm.Dateの後にあります(つまり、EMPLIDはTERMED )
2は= EMPLIDの最新Term.Dateは、最新のJob.Entry.Date後にされ、他のジョブコードである(すなわち、上記11 JobCodesの外と呼ばれるEMPLID)
これは私を魅了します。%>%の良い説明は何ですか?とにかく、そのEMPLIDの最大数が何であれ、EMPLIDごとに1行を作成するようにしていますか? –
ここには良い説明があります:http://r4ds.had.co.nz/pipes.html。 1つの行を生成するには、 "summarize"の "mutate"を切り替えます。 – roarkz
すごく読んでくれてありがとう@ザック!私が "mutate"を "summarize"に置き換えたとき、 "1つの値を期待する"というエラーが出ました。私は以下を使用しようとしましたが、役に立たなかった:jobentrydat_termcodes <-jobentrydat_alltechs%>% group_by(EMPLID)%>% 集計(entry_date_max = max(Job.Entry.Date)、 TermCode = unique(ifelse(!is.na (Term.Date)&Term.Date> entry_date_max、1、0))) –