在R中,duplicated()中的fromLast参数是否适用于整数64向量?
我正在尝试使用在R中,duplicated()中的fromLast参数是否适用于整数64向量?,r,R,我正在尝试使用duplicated()函数中的fromLast参数来识别integer64向量中的重复项(我的行按时间顺序排列,我希望丢弃较早的时间点,保留最近的唯一值)。它似乎不起作用 它适用于正则整数向量: > x <- c(1, 2, 3, 3, 4) > base::duplicated(x) [1] FALSE FALSE FALSE TRUE FALSE > base::duplicated(x, fromLast = TRUE) [1] FALSE F
duplicated()
函数中的fromLast
参数来识别integer64向量中的重复项(我的行按时间顺序排列,我希望丢弃较早的时间点,保留最近的唯一值)。它似乎不起作用
它适用于正则整数向量:
> x <- c(1, 2, 3, 3, 4)
> base::duplicated(x)
[1] FALSE FALSE FALSE TRUE FALSE
> base::duplicated(x, fromLast = TRUE)
[1] FALSE FALSE TRUE FALSE FALSE
>x基::重复(x)
[1] 假假假真假
>base::duplicated(x,fromLast=TRUE)
[1] 假假真假
这是正确的行为
但它不适用于整数64向量:
> x <- as.integer64(c(1, 2, 3, 3, 4))
> base::duplicated(x)
[1] FALSE FALSE FALSE TRUE FALSE
> base::duplicated(x, fromLast = TRUE)
[1] FALSE FALSE FALSE TRUE FALSE
>x基::重复(x)
[1] 假假假真假
>base::duplicated(x,fromLast=TRUE)
[1] 假假假真假
有什么想法吗
duplicated.integer64()
函数没有fromLast
参数
我可以做
rev(duplicated(rev(x)))
,但根据base R的文档,这比使用fromLast=TRUE
要慢,问题在于所调度的方法。它正在调用复制的.integer64
。如果我们想要相同的行为,请使用duplicated.default
duplicated.default(x, fromLast = TRUE)
#[1] FALSE FALSE TRUE FALSE FALSE
> duplicated.default
function (x, incomparables = FALSE, fromLast = FALSE, nmax = NA,
...)
通过检查duplicated.integer64
,它没有fromLast
参数
> duplicated.integer64
function (x, incomparables = FALSE, nunique = NULL, method = NULL,
...)
其中as在duplicated中有一个fromLast
的参数。默认值
duplicated.default(x, fromLast = TRUE)
#[1] FALSE FALSE TRUE FALSE FALSE
> duplicated.default
function (x, incomparables = FALSE, fromLast = FALSE, nmax = NA,
...)
数据
库(位64)
你说的是bit64
包吗?是的,我应该说得更清楚。看起来(基于下面接受的答案)在我的代码中,我仍然在不知不觉中从bit64
包调用duplicated()
函数。好的-是的,如果调用duplicated
,它将调用duplicated
,但是duplicated
将分派到注册的任何适当方法(通过UseMethod(“duplicated”)
)谢谢!我没有意识到,即使我用base::
预先挂起函数,它仍然会从bit64
包调用duplicate
的版本。