1


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

これらの日付を数値に変換してから、日付間の日数を見つける計画は何でしたか。私が立ち往生しているのは、日付を自然に数値に変換すると、いくつかのNAが得られるということです。私がやりたいのは、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関数を試しましたが、うまくいきませんでした。ffbase私はとffpdfをチェックしましたが何もしませんでした。ff私はウェブをよく見ていて、ベクトルに役立つものは何もありませんでした。

誰かが素晴らしいだろう提案があれば。乾杯、ローカン

4

2 に答える 2

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]は、日付を含む列です。このコードは、元の質問の例で示した日付で機能します。質問が人々を混乱させた場合、これがお役に立てば幸いです、
乾杯、
ローカン

于 2012-08-10T11:32:32.883 に答える
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
于 2012-11-14T19:51:19.350 に答える