我试图简单地将列的NA值转换为空白以准备Excel导出。我的代码返回以下错误:
> class(manifest_final$MIN_SAIL_DATE)
[1] "Date"
> head(manifest_final$MIN_SAIL_DATE)
[1] "2016-10-23" NA "2016-10-23" NA NA NA
> manifest_final$MIN_SAIL_DATE[is.na(manifest_final$MIN_SAIL_DATE)] <- ''
Error in charToDate(x) :
character string is not in a standard unambiguous format
列MIN_SAIL_DATE实际上是来自sqlQuery {RODBC}函数的计算列,然后将{plyr}连接到另一个表。该列最初是POSIX格式,我将其强制为Date。
EDIT :::
以下代码解决了我在查询数据后立即执行的问题:
next_sail$MIN_SAIL_DATE <- as.character.Date(next_sail$MIN_SAIL_DATE)
以下联接用于将next_detail
上的两个详细信息列附加到manifest
和person_num
= MIN_SAIL_DATE
上的SAIL_SAIL_DATE
:
manifest <- merge(manifest, next_detail, by.x = c('PERSON_NUM', 'MIN_SAIL_DATE'), by.y= c('PERSON_NUM', 'SAIL_SAIL_DTE'), all.x = TRUE)
当在连接之前发生格式更改时,我丢失了NA但也丢失了附加数据。当合并后移动格式更改时,我得到原始的Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
下面是数据样本。然后删除NA我失去了连接中带圆圈的代码。我假设它的格式问题
答案 0 :(得分:1)
对于您正在使用的写入功能(例如write.csv
),请使用na
选项设置NA
字符
write.csv(manifest_final, your_output_file, na = '')
您当然可以在write.csv
中添加您正在使用的其他选项。此选项也应该在其他write.*
函数中可用。
<强> EDITS 强>
的问题
manifest_final$MIN_SAIL_DATE[is.na(manifest_final$MIN_SAIL_DATE)] <- ''
是您尝试将Date
向量元素设置为character
字符串。
虽然我认为上述解决方案(使用na=
)是可行的方法,但您也可以将MIN_SAIL_DATE
列转换为字符串,然后将NA
列设置为空字符串。