在R中的ff向量中将NA更改为零

时间:2012-08-09 11:09:42

标签: r na


我坚持使用ff包。这是一个数据样本。

             col1                col2
90                            
91 21-02-2012 00:00:00 27-02-2009 00:00:00
92 21-02-2012 00:00:00 17-02-2010 00:00:00
93 21-02-2012 00:00:00   
94 21-02-2012 00:00:00                    
95 21-02-2012 00:00:00

将这些日期转换为数字然后查找日期之间的天数计划是什么。我坚持的是当我自然地将日期转换为数字时,我得到一些NAs就可以了。我想做的是将NA转换为整数0.这是我尝试的代码:

tfd<-as.ffdf(tfd) #just to get a sample from my data frame
dats<-as.ff(as.numeric(as.Date(tfd[,1],"%d-%m-%Y")))
dats[is.na(dats)]<-0

我收到错误:

Error in `[<-.ffdf`(`*tmp*`, is.na(dats), value = 0) : 
  value must be ffdf if only one index used

我尝试了na.count功能,但我没有运气。我检查了ffbaseff pdf,什么都没有。我通过网络很好地了解了ff向量没有任何帮助。

如果有人有任何建议会很棒。 干杯, 洛坎

2 个答案:

答案 0 :(得分:1)


再次欢呼,你们的善良。一位同事给了我一个关于在R中使用ifelse函数用一个整数填充空格的建议。我无法填写默认日期的空白,让我们说“2006-01-01”,但使用整数工作完美。这是代码:

ffdf1$dates1<-as.ff(ifelse(ffdf1[,3]=="",16000,as.numeric(as.Date(ffdf1[,3],"%d-%m-%Y"))))<br>

ffdf1是我正在使用的ff数据框架。而不是0我决定使用16,000。 ffdf [,3]是包含日期的列。此代码适用于我在原始问题中的示例中给出的日期。如果问题让人困惑,希望这会有所帮助和抱歉 干杯,
洛坎

答案 1 :(得分:1)

扩展上面的例子

# turn data.frame into ffdf
> F <- as.ffdf(Z)

# extract a complete column to RAM
> F[,1]
 [1] "2012-08-02" NA           "2012-08-10" "2012-08-18" "2012-08-01" NA           "2012-08-19" "2012-08-12"
 [9] "2012-08-11" NA

# assign zero to the NAs
> F[is.na(F[,1]),1] <- 0

# check the results
> F[,1]
 [1] "2012-08-02" "1970-01-01" "2012-08-10" "2012-08-18" "2012-08-01" "1970-01-01" "2012-08-19" "2012-08-12"
 [9] "2012-08-11" "1970-01-01"

# you tried to call is.na() directly on an ff object
> is.na(F[[1]])
logical(0)

# compare to 
> is.na(F[,1])
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

# note that all this assumes that the complete column fits into RAM
# if not you need chunking, see ?chunk

> version
               _                            
platform       x86_64-w64-mingw32           
arch           x86_64                       
os             mingw32                      
system         x86_64, mingw32              
status                                      
major          2                            
minor          15.2                         
year           2012                         
month          10                           
day            26                           
svn rev        61015                        
language       R                            
version.string R version 2.15.2 (2012-10-26)
nickname       Trick or Treat