私はFIRSTのための直接的なR翻訳を徹底的に探しました。そして最後。 SAS DATAのステップのポインタが見つかりません。 SAS、FIRSTに精通していない人のために。テーブルとLAST内の特定の要素の最初の出現を識別するブール値です。最後の外観を識別するブール値です。たとえば、以下のソートテーブルを考えてみます。data.frameの要素の最初と最後の出現を見つける方法はありますか?
V1 V2 V3
1 1 1
1 1 2
1 2 3
1 2 4
2 3 5
2 3 6
2 4 7
2 4 8
3 5 9
3 5 10
3 6 11
3 6 12
SAS DATAステップはラインによって、テーブルの行を読んでいるので、私はのようなステートメントを使用することができます。
IF FIRST.V1 THEN DO ...
と場合にのみ場合FIRST.V1はTRUEを返しますV1で観測が発生したのはこれが初めてです。言い換えれば、V1 [1](最初の出現は '1')、V1 [5](最初の出現は '2')、V1 [9](最初の出現は '3' )。最後。ポインタは類似の方法で機能しますが、その要素の最終的な外観を持ちます。
Rにこれをエミュレートするものはありますか?
たぶん '重複()'?しかし、実際の目標が何であるかを実際に教えてくれていないので、伝えるのは難しいです。 – joran
データセットを一度にループするのではなく、もっと多くのR-ish解(例えば 'ddply ')があるかもしれません... –
私は実際にdata.frameを1行ずつループしたくありません。私はそれがその列の値の最初の出現である場合はtrueを返し、そうでない場合はfalseを返す関数が必要です。また、値の最後の出現である場合にのみtrueを返し、それ以外の場合はfalseを返します。以下のSpacedmanのソリューションは、これらの目的には十分以上のものです。 – asteri