我在下面有一个示例数据。
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 的值。如果超过 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。我编辑了帖子。