检查对于var1的每个唯一值,是否有一个观察值等于R中的var2或var3(var4)
我想,我有一个并不复杂的问题,但我对R的知识非常基础,所以我找不到答案。我有4个变量。一个是我调用的分组变量检查对于var1的每个唯一值,是否有一个观察值等于R中的var2或var3(var4),r,grouping,apply,R,Grouping,Apply,我想,我有一个并不复杂的问题,但我对R的知识非常基础,所以我找不到答案。我有4个变量。一个是我调用的分组变量cluster。另外3个(ID,IDman,IDwoman)是个人ID。大概是这样的: cluster <- c("a", "a", "a", "b", "b", "b", "c", "c", "c") ID <- c(1, 7, 18, 3, 3, 9, 25, 10, 19) IDman <- c(1, 2, 3, 3, 3, 4, 10, 10, 6) IDw
cluster
。另外3个(ID
,IDman
,IDwoman
)是个人ID。大概是这样的:
cluster <- c("a", "a", "a", "b", "b", "b", "c", "c", "c")
ID <- c(1, 7, 18, 3, 3, 9, 25, 10, 19)
IDman <- c(1, 2, 3, 3, 3, 4, 10, 10, 6)
IDwoman <- c(5, 7, 9, 11, 12, 14, 19,19,5)
households <- data.frame(cluster, ID, IDman, IDwoman)
cluster考虑为婚姻列分配ave
(按组的在线聚合),其中max
用于返回任何TRUE
值
households <- within(households, {
man <- ave(IDman %in% ID, cluster, FUN=max)
woman <- ave(IDwoman %in% ID, cluster, FUN=max)
marriage <- man == 1 & woman == 1
rm(man, woman)
})
households
# cluster ID IDman IDwoman marriage
# 1 a 1 1 5 TRUE
# 2 a 7 2 7 TRUE
# 3 a 18 3 9 TRUE
# 4 b 3 3 11 FALSE
# 5 b 3 3 12 FALSE
# 6 b 9 4 14 FALSE
# 7 c 10 10 19 TRUE
# 8 c 19 6 5 TRUE
# 9 c 25 10 19 TRUE
请加一个好的。这样你可以帮助别人来帮助你!(例如,datatable
在您的问题中应该是什么并不完全清楚,cluster
的定义缺少了所有的引用…对此表示抱歉。希望现在就足够了。我仍然不确定我是否理解您想要做的事情。如果您展示结果data.frame应该是什么样子,这将非常有帮助?如果我们使用示例数据集<代码>家庭代码>,然后做一件事情,结果会是什么样的?谢谢你的时间和问题。我之前在声明中说过,我要寻找的是每个簇中ID等于IDman和ID等于Igals IDman的唯一组合的数量。我需要计算这个数字。我不寻找结果数据来自@Parfait的建议是否解决了您的问题?
unique(households[households$marriage == TRUE,
c("cluster", "marriage")])
# cluster marriage
# 1 a TRUE
# 7 c TRUE