如。日期在 R: 'character string is not in a standard unambiguous' 中失败



我正在使用我导入 excel格式的 R中的数据。

i在character格式的数据框(LPAv1.1.1(中有一个列(isas1_3b(。导入后,日期已从格式DD/mm/yy的格式变为几天(例如41268(。

我试图将其转换为以下:

as.Date(LPAv1.1.1$isas1_3b, origin = "1899-12-30")

但是,我会收到以下错误:

Chartodate(X(中的错误:字符串不是标准的明确格式 4.停止("字符串不是标准的明确格式"( 3. Chartodate(X( 2. as.date.character(lpav1.1.1 $ isas1_3b,oneration =" 1899-12-30"( 1. as.date(lpav1.1.1 $ isas1_3b,oneration =" 1899-12-30"(

我不确定我在做什么错。经过多次搜索,上述转换是建议的。

我还应该补充说,原始excel文档中还有其他两个日期列。但是它们都被读为'POSIXct''POSIXt'

其他可能相关的信息:

macOS 13.13.3 R 3.3.3 RStudio 1.1.419

有人可以帮助解决这个问题...我假设这是我正在做的事情。请让我知道您是否需要更多信息。

正当thelatemail正确指出,带有天信息的列必须以数字格式。

d <- 41268
as.Date(d, origin = "1899-12-30")
#[1] "2012-12-25"

在您的数据集上,这将修复它:

library(dplyr)
mutate(LPAv1.1.1, isas1_3b = as.Date(as.numeric(isas1_3b), 
                                     origin = "1899-12-30"))

变量类在列/向量中不一致。混合了日期,字符串和四位数数字。一旦我纠正了这些,它就会按预期工作。谢谢大家的帮助。

您是如何从Excel导入的?是否可以调整导入方法,以便以您期望的方式导入它?

使用软件包" XLSX"导入excel的数据为您提供两个选项read.xlsx,它将根据该列中的数据检测/猜测类类型,或read.xlsx2使用Colclasses选项手动类型。(更多信息在这里:http://www.sthda.com/english/wiki/r-xlsx-package-a-quick-start-guide-to-manipulate-excel-excel-excel-excel-files-files(

另一个有用的选项是XLConnect。

这两个软件包的一个可能的缺点是它们依靠Java来完成导入的工作,因此您必须安装Java才能工作。

我通过更改Excel中的日期的单元格格式到迄今为止'2014-03-24'解决了问题。并将文件保存为CSV(MS-DOS((*CSV(,然后再加载到R。

最新更新