我从管理信息系统下载了 csv 数据。有一些变量是日期,并以“2012/11/16 00:00:00”格式的字符串形式写入 csv。
读取 csv 文件后,我使用 as.Date() 函数将日期变量转换为日期。这适用于所有不包含任何空白项的变量。
对于那些确实包含空白项目的人,我收到以下错误消息:“字符串不是标准的明确格式”
如何让 R 用“0000/00/00 00:00:00”之类的东西替换空白项目,以便 as.Date() 函数不会中断?您还有其他方法可以推荐吗?
我从管理信息系统下载了 csv 数据。有一些变量是日期,并以“2012/11/16 00:00:00”格式的字符串形式写入 csv。
读取 csv 文件后,我使用 as.Date() 函数将日期变量转换为日期。这适用于所有不包含任何空白项的变量。
对于那些确实包含空白项目的人,我收到以下错误消息:“字符串不是标准的明确格式”
如何让 R 用“0000/00/00 00:00:00”之类的东西替换空白项目,以便 as.Date() 函数不会中断?您还有其他方法可以推荐吗?
如果它们是字符串,做一些简单的事情
mystr <- c("2012/11/16 00:00:00"," ","")
mystr[grepl("^ *$",mystr)] <- NA
as.Date(mystr)
工作?(正则表达式"^ *$"
查找由字符串开头(^
)、零个或多个空格(*
)以及字符串结尾($
)组成的字符串。更一般地说,我认为您可以使用它"^[[:space:]]*$"
来捕获其他类型的空格(制表符等.)
更好的是,在读取 CSV 时正确插入 NA:
read.csv(..., na.strings='')
或指定应读取为 NA 的所有值的向量...
read.csv(..., na.strings=c('',' ',' '))