gpt4 book ai didi

r - %between% 功能可能的改进

转载 作者:行者123 更新时间:2023-12-04 04:51:16 25 4
gpt4 key购买 nike

根据 data.table版本 1.8.8 %between%定义如下:

> `%between%`
function (x, y)
between(x, y[1], y[2], incbounds = TRUE)
<bytecode: 0x0000000050912810>
<environment: namespace:data.table>

我认为,通过这个微小的变化,这个函数会被向量化,
function (x, y) 
between(x, y[[1]], y[[2]], incbounds = TRUE)

喜欢 between
s <- c(2, 5)
d <- c(7, 9)
> between(3, s, d)
[1] TRUE FALSE

这个想法来自有一个包含两个向量的列表,它向我建议了这种可能的用法:
`between2%` <- function(x, lst) between(x, lst[[1]], lst[[2]], incbounds = TRUE)

> 3%between%c(s,d)
[1] TRUE
> 3%between2%list(s,d)
[1] TRUE FALSE

我的问题是:如果我更换了 %between% data.table 中是否有任何功能?包会受影响吗?我认为不应该, [[应该使用原子向量作为 [确实。我说得对吗?谢谢
> 3%between2%c(1,5)
[1] TRUE

最佳答案

我认为这是一个有趣的问题,因为我想知道一个函数被其他函数使用时一般会是什么样子。据我所知,没有办法直接做到这一点(也许有人可以纠正我?)。但是,我整理了一些代码,用于在其他函数的文本表示中查找函数名称。对于 %between% ,这是以下内容:

library(data.table)
objs <- objects("package:data.table")
z <- textConnection("funs", open="w")
dump(list=objs, file=z)
close(z)

# find all mentions of `%between%` in `data.table` functions
funs[grep("%between%",funs)] ## only mentions are when %between% is defined

# find all mentions of all `data.table` functions in `data.table` functions
locations <- lapply(objs, function(x) grep(x,funs))
names(locations) <- objs

更新:在进行更多搜索后, this question/answer似乎还提供了有关如何使用 foodweb 以编程方式检测依赖项的更多信息来自 library(mvbutils) .

关于r - %between% 功能可能的改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17402735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com