私のデータ フレームには、ID は同じですが、テスト年と年齢の値が異なる行があります。重複する行を折りたたんで、異なる値の新しい列を作成したいと思います。
私はRが初めてで、しばらく苦労しています。
これはデータフレームです:
>df id プロジェクト testyr1 testyr2 age1 age2 1 16S AS 2008 NA 29 NA 2 32S AS 2004 NA 30 NA 3 37S AS NA 2011 NA 36 4 50S AS 2004 NA 23 NA 5 50S AS 1998 NA 16 NA 6 55S AS 2007 NA 28 NA
testyr1
最初の年とtestyr2
最新の年が必要です。若い年齢と古い年齢age1
である必要があります。age2
出力は次のようになります。
id プロジェクト testyr1 testyr2 age1 age2 1 16S AS 2008 NA 29 NA 2 32S AS 2004 NA 30 NA 3 37S AS NA 2011 NA 36 4 50S AS 1998 2004 16 23 6 55S AS 2007 NA 28 NA
ループを書き込もうとしましたが、終了方法がわかりません:
df.undup <- c()
df.undup <- c()
for (i in 1:nrow(df)){
if i == i+1
df$testyr1 != NA {
testyr2 = max(testyr1)
testyr1 = min(testyr1)
nage2 = max(nage1)
nage1 = min(nage1)
}
else{
testyr2 = max(testyr2)
testyr1 = min(testyr2)
nage2 = max(nage2)
nage1 = min(nage2)
}
}
どんな助けでも大歓迎です。