[英]duplicated function fails for ff date vectors
嗨,我正在嘗試使用ffbase包的重復函數和以下代碼從包含日期的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)]
但是我收到以下錯誤:
Error in UseMethod("as.hi") :
no applicable method for 'as.hi' applied to an object of class "Date"
有什么辦法可以解決此問題而不必先將v2向量強制轉換為ram對象?
嘗試這個:
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"
而且它已被重復數據刪除。
ff
對象需要特別地切片/子集,以便在其上適當使用功能。 一種方法是上面使用[,]
或[]
(因為它是向量,所以使用此方法),以便創建具有所有元素的向量,然后在其上使用duplicated
。
使用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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.