【发布时间】:2016-01-26 01:25:13
【问题描述】:
我正在尝试将列的 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。
编辑:::
以下代码在查询数据后立即执行时解决了我的 NA 问题:
next_sail$MIN_SAIL_DATE <- as.character.Date(next_sail$MIN_SAIL_DATE)
以下连接用于将next_detail 中的两个详细信息列附加到person_num 和MIN_SAIL_DATE 上的manifest 和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 被删除,我从连接中丢失了带圆圈的代码。我假设它是格式问题
【问题讨论】:
-
您有两个选择,第一个是您可以使用
write.table的na=''选项(或您正在使用的任何写入功能)。在将NA设置为空字符串之前,您还可以将manifest_final$MIN_SAIL_DATE转换为字符向量。它之所以抱怨,是因为您试图将Date向量的某些元素设置为空字符串。第一个选择可能是最好的。默认为na = "NA",只需将其设置为空字符串即可。 -
完美。我想问题只是源于我对错误的误解。我将列更改为字符格式,我们都很好。谢谢
标签: r