group_by
ステートメントを使用してデータフレームから日付を取得しようとしていますが、Rでどのように実行できるかわかりません。
私は次のようなデータフレームを持っています:
A B C D E
1 XX 9999-12-31 2005-11-01 0
2 XX 2003-10-31 2002-01-01 3
2 XX 2002-12-31 2001-03-01 3
2 XX 2001-02-28 1998-07-11 0
2 XX 1998-07-10 1993-04-01 3
3 XX ..................... 3
3 XX ..................... 3
3 XX 2003_12-31 2003-01-01 3
4 XX .....
「A」列の各IDの「E」列の0のすぐ上にある「D」列の値を選択したいのですが、ゼロしかない場合は、結果を保持するかどうかは関係ありません。この場合、私は欲しいです:
A B C D E
1 XX 9999-12-31 2005-11-01 0 <-- Doesn't actually matters if it stays or not
2 XX 2002-12-31 2001-03-01 3
3 XX 2003_12-31 2003-01-01 3
4 XX .....
日付は正しいですが、値を設定する方法、または少なくとも最初に検出されたゼロより下の行を削除する方法が見つかりません(複数のゼロが存在する可能性があると想定していますが、日付が正しいため、関係ありません) 前もって感謝します。
Rのパッケージddply()
から使用しplyr
ます。
ddply(.data = df,.variables = "A",function(dt){
zeroind=which(dt$E==0)
if(length(zeroind)>0){
if(zeroind[1]>1){
dt[(zeroind[1]-1),]
}else{
dt[zeroind[1],]
}
}else{
dt[nrow(dt),]
}
})
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加