在 R 中查找特定值的索引

Find Index of Specific Value in R

我目前正在处理作业问题并且遇到了一个问题。我正在处理的问题是经典生日问题的修改版本。但是,我现在不仅要计算两个人生日相同的概率,还要计算其他人与我生日完全相同的概率。

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

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)
}