在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
的版本。