r - 如果给定元素不出现,则查找给定元素的索引或 NA
问题描述
我在一个问题上被困了好几个小时。如果有人知道如何解决它,非常感谢。
所以我正在尝试学习如何编写一个函数 f,它接受一个输入(数字)向量“vec”和一个整数“int”。
基本上,该函数应该返回“int”出现在“vec”中的什么位置,如果“int”没有出现在“vec”中,那么该函数应该返回“NA”。
所有这一切都是通过使用循环“for”来实现的。
最后,输出
sapply(1:4, function(x) print(f3(c(3, 3, 3, 2, 2, 1), x))) is
# ```
# [1] 6
# [1] 4 5
# [1] 1 2 3
# NULL
这是我的代码,但我被困在这里,看不到我的问题的解决方案。
f <- function(vec, int) {
for (i in vec)
check <- vec[]== int
which(int == vec)
}
解决方案
你可以使用这样的东西:
f <- function(vec, int){
if(all(vec != int)) return(NA)
for(i in vec){
if(i == int) return(which(vec == i))
}
}
然后您可以检查它是否有效,例如,通过:
vect <- sample(1:10, 1000, replace = T)
inte <- 10
f(vect, inte)
推荐阅读
- python - 基于两列(开始日期和结束日期)选择具有条件的行
- javascript - Unix 时间戳在 JavaScript 中不正确,但根据其他来源是正确的
- python - 为什么我们在使用 sqlalchemy 的 Fastapi 中使用 yield 来获取 Sessionlocal?
- sql - 如何创建视图表以显示同一员工的当前记录数和总数?SQL 甲骨文
- wso2 - WSO2 EI 6.6.0 hal_json 格式问题
- c - 关于在 lex 中使用 yyin 和 yyout 进行词法分析的问题
- python - NameError,为什么程序无法识别先前定义的变量?
- javascript - 使用 Css/Js 的文本动画无法正常工作
- angular - 如何从 Angular 9 中的 http 客户端删除方法获取文本响应
- c# - 为什么我的脚本在 if 条件下失败?