Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查对于var1的每个唯一值,是否有一个观察值等于R中的var2或var3(var4)_R_Grouping_Apply - Fatal编程技术网

检查对于var1的每个唯一值,是否有一个观察值等于R中的var2或var3(var4)

检查对于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

我想,我有一个并不复杂的问题,但我对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)

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