5

我从管理信息系统下载了 csv 数据。有一些变量是日期,并以“2012/11/16 00:00:00”格式的字符串形式写入 csv。

读取 csv 文件后,我使用 as.Date() 函数将日期变量转换为日期。这适用于所有不包含任何空白项的变量。

对于那些确实包含空白项目的人,我收到以下错误消息:“字符串不是标准的明确格式”

如何让 R 用“0000/00/00 00:00:00”之类的东西替换空白项目,以便 as.Date() 函数不会中断?您还有其他方法可以推荐吗?

4

2 回答 2

3

如果它们是字符串,做一些简单的事情

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

工作?(正则表达式"^ *$"查找由字符串开头(^)、零个或多个空格(*)以及字符串结尾($)组成的字符串。更一般地说,我认为您可以使用它"^[[: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 回答