5

管理情報システムからのデータの csv ダウンロードがあります。日付であり、「2012/11/16 00:00:00」形式の文字列として csv に書き込まれる変数がいくつかあります。

csv ファイルを読み取った後、関数 as.Date() を使用して日付変数を日付に変換します。これは、空白の項目を含まないすべての変数に対して正常に機能します。

空白のアイテムが含まれているものについては、次のエラー メッセージが表示されます:「文字列は標準の明確な形式ではありません」

as.Date()関数が壊れないように、Rに空白の項目を「0000/00/00 00:00:00」のようなものに置き換えるにはどうすればよいですか? あなたが推奨する他のアプローチはありますか?

4

2 に答える 2

3

それらが文字列の場合、次のような単純なことを行います

mystr <- c("2012/11/16 00:00:00","   ","")
mystr[grepl("^ *$",mystr)] <- NA
as.Date(mystr)

仕事?(正規表現は、文字列の先頭 ( )、0 個以上のスペース ( )、文字列の末尾( )"^ *$"で構成される文字列を探します。より一般的には、他の種類の空白 (タブなど) をキャプチャするために使用できると思います。.)^*$"^[[:space:]]*$"

于 2012-11-29T14:10:48.917 に答える
2

さらに良いことに、CSV を読み込むときに NA を正しく挿入します。

read.csv(..., na.strings='')

または、NAとして読み取る必要があるすべての値のベクトルを指定するには...

read.csv(..., na.strings=c('','  ','   '))
于 2016-11-13T14:14:49.453 に答える