每當至少有一個來自該組的主題滿足兩個條件時,我試圖從數據庫中識別(使用二進制1/0變量)主體組。如果在其中一個條件發生時識別個人組
我的數據庫DF
由隨性的描述和年齡每個成員的(和家庭ID family
)的家庭:我想創建一個新的二元變量NoMan
這將是0,如果從男性的至少一個一個家庭(sx
與屬性1
)是年齡更多比16年,否則它將取值1.請注意,我想NoMan
是來自同一家庭的所有成員相同。
family <- factor(rep(c("001","002","003"), c(10,8,15)),
levels=c("001","002","003"), labels=c("001","002","003"), ordered=TRUE)
ag <- c(22,8,4,2,55,9,44,65,1,7,32,2,2,1,6,9,18,99,73,1,2,3,4,5,6,7,8,9,10,18,11,22,33)
sx <- c(1,2,2,2,1,2,2,2,1,1,2,1,2,1,2,1,2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2,2)
DF <- data.frame(family, ag, sx)
DF
我曾嘗試使用ddply
與ifelse
合併,但這並不成功:
DF <- ddply(DF,.(family), transform, NoMan=ifelse(sx==1 & ag>16, 1, 0))
DF
看來,中最終其他的限制,在這個腳本的功能,適用於我個人,而不是家庭(實際上希望他們將同樣的結果應用於同一家庭的所有成員)。
我覺得我在正確的軌道上,但也許有人有一個很好的解決這個問題?
PS:剛編輯DF
,因爲在這個例子中,我想從家庭003所有成員被標記爲NoMan==1
謝謝烏韋座 – den
正如你已經改變了Q,所有的答案 - 尤其是_S麪包車Balen_接受一個 - 應該修改我猜也是。 – Uwe
事實上,Uwe Block,我的錯誤......年齡的條件應該都是'ag> 16''。大多數答案在這裏工作得很好。謝謝 – den