假设我们有data.table
myDT <- data.table(id = c("a", "a", "b", "b", "c"), value = 1:5)
setkey(myDT, id)
我想创建一个功能
fun <- function(id) {
...
}
如果
foo <- rep("b", 6)
然后
fun(foo)
# I want this to return 3 4
基本上,我想将id[[1]]
从执行环境传递到i
的{{1}}参数。
我很难在这里访问正确的环境并正在寻求帮助。
不能选择更改函数参数的名称。
答案 0 :(得分:2)
对范围的严格控制安排在1.9.8,#633,完成后将使访问(外部)变量更容易,这些变量也是data.table中的列名。
但这很容易解决。不知道为什么你真的很难......
fun <- function(id) {
.id_unique = unique(id)
myDT[.(.id_unique), which=TRUE]
}
fun(foo) # [1] 3 4