R ff日期向量的复制函数失败

R ff日期向量的复制函数失败,r,duplicates,duplicate-removal,ff,ffbase,R,Duplicates,Duplicate Removal,Ff,Ffbase,您好,我正在尝试使用ffbase包的duplicated函数和以下代码从包含日期的ff向量中删除重复项: v1 <- c("24-Mar-94", "24-Mar-94", "27-Mar-94", "28-Jun-1986", "29-Jul-1988", "28-Jun-1986", "15-Jan-1999", "13-Jan-1999") v1.d <- as.Date(v1, format="%d-%b-%y") v1.ff <- as.ff(v1.d) v2 <

您好,我正在尝试使用ffbase包的duplicated函数和以下代码从包含日期的ff向量中删除重复项:

v1 <- c("24-Mar-94", "24-Mar-94", "27-Mar-94", "28-Jun-1986", "29-Jul-1988", "28-Jun-1986", "15-Jan-1999", "13-Jan-1999")
v1.d <- as.Date(v1, format="%d-%b-%y")
v1.ff <- as.ff(v1.d)
v2 <- v1.ff[!duplicated(v1.ff)]

有没有办法解决这个问题,而不必先将v2向量强制转换为ram对象?

使用sapply只获取唯一的日期,然后再转换为ffbase对象

library(ffbase)
v1 <- c("24-Mar-94", "24-Mar-94", "27-Mar-94", "28-Jun-1986", "29-Jul-1988", "28-Jun-1986", "15-Jan-1999", "13-Jan-1999")
v1<-sapply(v1,unique)
v1.d <- as.Date(v1, format="%d-%b-%y")
v1.ff <- as.ff(v1.d)
库(ffbase)
v1试试这个:

library(ff)
v1 <- c("24-Mar-94", "24-Mar-94", "27-Mar-94", "28-Jun-1986", "29-Jul-1988", "28-Jun-1986", "15-Jan-1999", "13-Jan-1999")
v1.d <- as.Date(v1, format="%d-%b-%y")
v1.ff <- as.ff(v1.d)
v2 <- v1.ff[ !duplicated(v1.ff[,])  ]
而且它是重复数据消除的


ff
需要对对象进行特别的切片/子集,以便在对象上适当地使用函数。其中一种方法是上面使用
[,]
[]
(对于这一种,因为它是一个向量)创建一个包含所有元素的向量,然后在其上使用
复制的

我想您不想在转换为ff之前使用
复制的
。这是一个“被截断”的示例。我已经通过ffload在内存中存储了ff向量。您好,感谢您的回复,但很抱歉没有完全清楚:这段代码是我试图做的“简明示例”,前两行就是为了这个目的。所以假设v1.ff是一个非常大的向量,由ffload创建。因此,我只想使用ff向量,如果可能的话,不想使用它的ram副本。另外,如果你想了解ff的一些细节,我觉得非常有帮助。
library(ff)
v1 <- c("24-Mar-94", "24-Mar-94", "27-Mar-94", "28-Jun-1986", "29-Jul-1988", "28-Jun-1986", "15-Jan-1999", "13-Jan-1999")
v1.d <- as.Date(v1, format="%d-%b-%y")
v1.ff <- as.ff(v1.d)
v2 <- v1.ff[ !duplicated(v1.ff[,])  ]
> v1.d
[1] "1994-03-24" "1994-03-24" "1994-03-27" "2019-06-28" "2019-07-29" "2019-06-28" "2019-01-15" "2019-01-13"
> v2
[1] "1994-03-24" "1994-03-27" "2019-06-28" "2019-07-29" "2019-01-15" "2019-01-13"