我有一個下面的示例數據。如何重新排列數據?
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
中的所有值。然後從classobj==2
尋找var1==1
(家庭的負責人)。複製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
IM規劃使用此代碼刪除所有的值,如果classobj==1
DF[DF$Classobj == 1, 2:4] <- NA
剩餘的概率將是我怎麼能找var1==1
和複製它的值。
PS。
對不起。它不應該是var2,而是var3。我編輯了這篇文章。
是您的數據排序?即'classobj = 1,2,2,1,2,2,2,1,2,2 ......' – N8TRO
在你的例子中,不應該將'var2 == 2'的行復制? – TheComeOnMan
@Codoremifa:只應複製從var1到var4的值。應該保留classobj的所有值。 – dixi