以下にサンプルデータがあります。
classobj var1 var2 var3 var4
1 2 0 10 4
2 1 1 64 2
2 3 1 15 2
2 1 2 46 1
2 3 1 13 1
1 2 0 10 4
2 1 1 45 2
2 2 2 45 2
2 3 1 11 1
2 3 2 9 1
classobj=1
は世帯であり、世帯classobj==2
のメンバーです。したがって、データのこの部分は 1 つの世帯に属します。
classobj var1 var2 var3 var4
1 2 0 10 4
2 1 1 64 2
2 3 1 15 2
2 1 2 46 1
2 3 1 13 1
私がしたいのは、 の行のすべての値を削除することですclassobj==1
。var1==1
次に、から (家長) を探しますclassobj==2
。のすべての行の値をコピーしvar1==1
、それを ``classobj==1.' の値として追加します。複数ある場合はvar==1
、var3 を探します。最も高い値を持つ var3 の値をコピーします。
編集済み:出力はこれである必要があります
classobj var1 var2 var3 var4
1 1 1 64 2
2 1 1 64 2
2 3 1 15 2
2 1 2 46 1
2 3 1 13 1
1 1 1 45 2
2 1 1 45 2
2 2 2 45 2
2 3 1 11 1
2 3 2 9 1
このコードを使用してすべての値を削除する予定ですclassobj==1
DF[DF$Classobj == 1, 2:4] <- NA
残りの問題は、その値をどのように検索しvar1==1
てコピーできるかということです。
PS。
ごめん。var2 ではなく var3 にする必要があります。投稿を編集しました。