【问题标题】:as.Date fails in R: 'character string is not in a standard unambiguous'as.Date 在 R 中失败:'字符串不是标准明确的'
【发布时间】:2018-10-07 19:25:54
【问题描述】:

我正在处理R 格式的数据,这些数据是我从excel 格式导入的。

我在数据框 (LPAv1.1.1) 中有一个列 (isas1_3b),格式为 character。导入后,日期已从 dd/mm/yy 格式更改为天(例如 41268)。

我尝试将其转换如下:

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

但是,我收到以下错误:

charToDate(x) 中的错误:字符串不是标准的明确格式 4. stop("字符串不是标准的明确格式") 3.charToDate(x) 2. as.Date.character(LPAv1.1.1$isas1_3b, origin = "1899-12-30") 1. as.Date(LPAv1.1.1$isas1_3b, origin = "1899-12-30")

我不确定我做错了什么。经过多次搜索,建议使用上述转换。

我还应该补充一点,原始excel 文档中还有另外两个日期列。但他们都被读作'POSIXct''POSIXt'

其他可能相关的信息:

macOS 13.13.3 R 3.3.3 RStudio 1.1.419

有人可以帮助解决这个问题...我假设这是我正在做的事情。如果您需要更多信息,请告诉我。

【问题讨论】:

  • 您的isas1_3b 列不是数字,目前是字符列。首先使用as.numeric 转换它,然后重试。

标签: r excel date statistics


【解决方案1】:

正如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"))

【讨论】:

  • 感谢您的快速回复。 Deepak Rajendran,感谢您的代码。我运行了它,但它仍然将类显示为“字符”并且没有做出预期的改变。任何其他建议将不胜感激。无论我做什么,as.numeric 函数似乎都无法将其转换为我想要的格式...?
  • @Atanas Janackovski 你能发一份你的数据集样本吗?
  • 我很乐意。做这个的最好方式是什么?真的很抱歉,我是Rstackoverflow 的新手---提前感谢您的耐心等待。
  • 您可以使用edit 按钮编辑上面的原始帖子,然后粘贴示例数据框。
  • 谢谢迪帕克。我想我想通了。该类在列/向量中不一致。日期、字符串和四位数字混合在一起。一旦我纠正了这些,它就会按预期工作。感谢您的帮助。
【解决方案2】:

你是如何从 excel 中导入它的?是否可以调整导入方法,使其按您期望的方式导入?

使用包“xlsx”从 excel 导入数据为您提供了两个选项 read.xlsx,它将根据该列中的数据检测/猜测类类型,或者 read.xlsx2,您必须在其中设置/获取使用 colClasses 选项手动输入类类型。 (更多信息:http://www.sthda.com/english/wiki/r-xlsx-package-a-quick-start-guide-to-manipulate-excel-files-in-r

另一个有用的选项是 XLConnect。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2016-12-02
      • 2014-05-05
      • 2013-08-29
      • 2015-01-27
      • 1970-01-01
      • 2013-01-23
      相关资源
      最近更新 更多