作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
lookup(c("a"),c(3),"b",0) [1] 0 > lookup(c("a",-6ren">
这是我写的一个函数:
lookup <- function (keys, values, key, default) {
found <- which(keys == key)
if (length(found) == 1) return(values[found])
if (length(found) == 0) return(default)
stop("lookup(",keys,",",values,",",key,",",default,"): duplicate keys")
}
它很好地满足了我的需求:
> lookup(c("a"),c(3),"a",0)
[1] 3
> lookup(c("a"),c(3),"b",0)
[1] 0
> lookup(c("a","a"),c(3),"a",0)
Error in lookup(c("a", "a"), c(3), "a", 0) : lookup(aa,3,a,0): duplicate keys
问题是:它看起来风格对吗?我错过了什么吗?
(具体来说,我希望这个函数写成单个表达式)。
我知道这涉及到完整的向量查找,因此效率很低,如果我希望它更快,我应该使用 data.table
。幸运的是,这种情况下的性能并不重要,因为我的数据非常非常小。
谢谢!
最佳答案
R 通过 names
将字典内置到语言中
dict <- c("Key1"="val1", "Key2"="val2")
dict[["Key1"]]
# [1] "val1"
dict[["Key3"]]
# Error in dict[["Key3"]] : subscript out of bounds
getVal <- function(key, dict=defaultDict) {
if (! key %in% names(dict) )
return(defaultValue)
dict[[key]]
}
关于矢量查找的 R 习语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287933/
场景如下: 我将我的应用程序运行所需的几个 .xml(某种配置)文件捆绑在一个 .jar 文件中。 jar 文件具有以下结构: settings-1.0.0.jar ˪ resources/ ˪
我是一名优秀的程序员,十分优秀!