POSIXct/文字列のベクトルをNAで初期化したい

Sys.time関数は「日付+時刻」で表現される現在時刻をPOSIXct型で返してくれる。

> class(Sys.time())
[1] "POSIXct" "POSIXt" 

ただ、このPOSIXct型のベクトルを、欠損(NA)付で使おうと意図して以下のように書くと…

> x <- rep(NA, 3)
> x[2] <- Sys.time()
> x
[1]         NA 1405906690         NA

日時がシリアルの数値になってしまう。これを直すためにNAにas.POSIXct関数を噛ませて書くと

> x <- rep(as.POSIXct(NA), 3)
> x[2] <- Sys.time()
> x
[1] NA                        "2014-07-21 10:38:32 JST" NA   

となって欲しい形となる。

また、

を見ると

as.POSIXct(chracter())

ってのもありかな。


同じように文字列のベクトルもNA初期化したい。元々のrep(NA, 3)という表現の型を見てみると

> class(rep(NA,3))
[1] "logical"

のようにlogical判定されているので、これをなんとかcharacterにしたいというわけだ。これも素直にas.character関数をかませれば

> class(rep(as.character(NA),3))
[1] "character

となって欲しい形となる。