Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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
在R中查找特定值的索引_R_Duplicates_Matching - Fatal编程技术网

在R中查找特定值的索引

在R中查找特定值的索引,r,duplicates,matching,R,Duplicates,Matching,我目前正在做作业,遇到了一个问题。我正在研究的问题是经典生日问题的修改版本。然而,我现在也在尝试,不仅仅是计算两个人生日相同的概率,更具体地说,是其他人和我的生日完全相同的概率 以下是作业现有生日问题的工作函数 birthdays = function(n) { s = sample(1:365, n, replace = TRUE) return(s) } duplicate.birthdays = function(n) { b = birthdays(n) dups = anyDup

我目前正在做作业,遇到了一个问题。我正在研究的问题是经典生日问题的修改版本。然而,我现在也在尝试,不仅仅是计算两个人生日相同的概率,更具体地说,是其他人和我的生日完全相同的概率

以下是作业现有生日问题的工作函数

birthdays = function(n) {
s = sample(1:365, n, replace = TRUE)  
return(s)
}

duplicate.birthdays = function(n) {
b = birthdays(n)
dups = anyDuplicated(b)
dups = any(dups>0)
return(dups)
}

prob.duplicate =function(n) {
r = replicate(5000, duplicate.birthdays(n))
prob = sum(r) / length(r)  
return(prob)
}

n = 1:100     # number of people I'm sampling from
probs = sapply(n, prob.duplicate)
我试图修改这些函数,以便专门针对与我生日相同的人。我假设在1-365天中,我会寻找数字1再次出现的任何时间,因为我假设1,或者1月1日是我的生日

下面是我修改过的duplicate.birthdays函数

duplicate.birthdays = function(n) {
b = birthdays(n)
index = 1:length(b)
x = 1
index.get.1 = index [x=1]
return(index.get.1)
}
但是,我总是返回第一个索引,而不是索引是否与值1匹配


任何帮助都将不胜感激,希望这是足够的信息来理解我的意图。

您的函数有点奇怪:您正在通过
x=1
进行子集设置,该值始终为1

尝试以下方法:

duplicate.birthdays <- function(n) {
    which(birthdays(n)==1)
}

duplicate.birthdays尝试此更改后,我将返回一个变量prob列表,基本上读取int(0)int(0)int 12。这是否提供了与1匹配的索引?不完全确定这是返回的确切内容,但感谢您的帮助!是的,它给出匹配的位置,如果没有匹配,则给出整数(0)
。更用户友好的版本可能是:
replicate.birthdays非常感谢!这使我走上了正确的道路。