R 替换ffdf对象中的NAs

R 替换ffdf对象中的NAs,r,flat-file,ff,ffbase,R,Flat File,Ff,Ffbase,我正在使用一个ffdf对象,它在某些列中有NAs。NAs是使用merge.ffdf进行左外部合并的结果。我想用0s替换NAs,但无法做到这一点。 以下是我正在运行的代码: library(ffbase) deals <- merge(deals,rk,by.x=c("DEALID","STICHTAG"),by.y=c("ID","STICHTAG"),all.x=TRUE) attributes(deals) $names [1] "virtual

我正在使用一个ffdf对象,它在某些列中有NAs。NAs是使用merge.ffdf进行左外部合并的结果。我想用0s替换NAs,但无法做到这一点。 以下是我正在运行的代码:

    library(ffbase)
    deals <- merge(deals,rk,by.x=c("DEALID","STICHTAG"),by.y=c("ID","STICHTAG"),all.x=TRUE)
    attributes(deals)
    $names
    [1] "virtual"   "physical"  "row.names"
    $class
    [1] "ffdf"

vmode(deals$CREDIT_R)
[1] "double"

    idx <- ffwhich(deals,is.na(CREDIT_R)) # CREDIT_R is one of the columns with NAs
    deals.strom[idx,"CREDIT_R"]<-0
    error in `[<-.ffdf`(`*tmp*`, idx, "CREDIT_R", value = 0) : 
      ff/ffdf-iness of value and selected columns don't match
库(ffbase)

expndtw-1\f25 ff包的手册中指出了一个名为ffindexset的函数

idx <- is.na(deals$CREDIT_R) ## This uses is.na.ff_vector from ffbase
idx <- ffwhich(idx, idx == TRUE) ## Is part of ffbase
deals$CREDIT_R <- ffindexset(x=deals$CREDIT_R, index=idx, value=ff(0, length=length(idx), vmode = "double")) ## Is part of ff
deals$CREDIT_R[idx] <- ff(0, length=length(idx), vmode = "double") ## this one will probably also work

idxff包手册中指出了一个名为ffindexset的函数

idx <- is.na(deals$CREDIT_R) ## This uses is.na.ff_vector from ffbase
idx <- ffwhich(idx, idx == TRUE) ## Is part of ffbase
deals$CREDIT_R <- ffindexset(x=deals$CREDIT_R, index=idx, value=ff(0, length=length(idx), vmode = "double")) ## Is part of ff
deals$CREDIT_R[idx] <- ff(0, length=length(idx), vmode = "double") ## this one will probably also work

idx Hi jwijffels,感谢您的回复,但是您提出的两种解决方案在我的案例中都会生成相同的错误消息:*错误:长度(值)==n不正确*嗨,两种解决方案都有效。和往常一样,答案非常迅速准确。非常感谢!您好,是否也可以替换所有列中的所有NA,而不仅仅是一列中的NA?感谢您的回复,但在我的案例中,您提出的两种解决方案都会生成相同的错误消息:*错误:长度(值)==n不正确*嗨,两种解决方案都有效。和往常一样,答案非常迅速准确。非常感谢!您好,是否也可以替换所有列中的所有NA,而不仅仅是一列中的NA?非常感谢