在R中转换日期时如何处理空白项

在R中转换日期时如何处理空白项,r,na,missing-data,as.date,R,Na,Missing Data,As.date,我从管理信息系统下载了csv数据。有些变量是日期,在csv中以字符串形式写入,格式为“2012/11/16 00:00:00” 读取csv文件后,我使用函数as.date()将日期变量转换为日期。这适用于不包含任何空白项的所有变量 对于包含空白项的项目,我会收到以下错误消息: “字符串不是标准的明确格式” 如何让R用“0000/00/00:00:00”之类的内容替换空白项,以便as.Date()函数不会中断?还有其他方法可以推荐吗?如果它们是字符串,请执行以下简单操作 mystr <- c

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

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

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


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

如果它们是字符串,请执行以下简单操作

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

mystr更好的是,在读取CSV时正确插入NAs:

read.csv(..., na.strings='')
或者指定所有值的向量,这些值应被读取为NA

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

as.Date(c(“2012/11/16 00:00:00”,NA))
对我来说很好,所以我假设您在这些空白字段中有NAs以外的内容。最好将这些空白字段更改为NAs。能否使用
dput()
发布数据的子集?数据包含日期或“”字符串。以下是dput():结构(c)(1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L“2012/10/09 00:00:00”、“2012/10/15 00:00:00”,“2012/11/02 00:00:00”,“2012/11/12 00:00:00”,“2012/11/15 00:00:00”,“2012/11/16 00:00:00”,“2012/11/19 00:00:00”,“2012/11/30 00:00:00”),class=“factor”)请参阅我的答案下面关于因子的评论…小心因子,您可能希望
as.character()
首先是它们--
grepl
可能会对因子产生奇怪的作用。这很奇怪,不是吗?当您使用read.csv()读入数据时,How R默认为factors。grep似乎奏效了。我正在检查结果输出,以确保它工作正常。好的,谢谢各位。GREPL方法似乎工作得非常好。您可能对
stringsAsFactors=FALSE
感兴趣(请参见
?选项
?read.csv