每当至少有一个来自该组的主题满足两个条件时,我试图从数据库中识别(使用二进制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