【问题标题】:openxlsx function read.xlsx fails to correctly read dates in Ropenxlsx 函数 read.xlsx 无法正确读取 R 中的日期
【发布时间】:2018-07-25 14:24:54
【问题描述】:

我正在尝试使用 openxlsx 包在 R 中加载 .xlsx 文件。不幸的是,电子表格在日期列中有一些奇怪的格式,格式为“月/日/年”,例如9/21/2014。 (Excel 将其识别为日期格式)。使用read.xlsx 导入时,会丢失月份和日期,只留下年份作为数字列。我怀疑这与/ 字符有关。

df <- read.xlsx("The File.xlsx", sheet = "Sheet 1")

head(df)
  Number       Type         Other.Type     Date
    1           902             611        2014     
    2           902             611        2014   
    3           902             611        2014    
    4           795             966        2014 
 ...

我尝试过包含 detectDates = TRUE 参数,但这只给出了 NAs。

我无法编辑电子表格,因为数据属于其他人,而我刚刚获得了访问权限。是否有与 xlsx 包中的 colClasses 参数等效的方法,或任何其他将数据导入 R 的方式?

非常感谢

【问题讨论】:

  • 我想你可能有和this guy类似的问题
  • @KenHBS,是的,看起来像同一个问题(尽管我所有的数据都在同一类型的单列中)。但同样,我无法更改输入文件,只能在 R 中编辑一次。
  • 也许您可以先将 xlsx 转换为其他格式? csv左右
  • readxlAFAIK 没有问题。一个不错的功能是可以读取其中包含不同类型的列(作为列表读取)。而且速度很快。 openxlsx 是一个很好的写入 Excel 文件包(允许样式、包含图像、cmets...)。 readxl 是阅读 Excel 文件的最佳选择。此外readxl 正在密集维护中;如果发现错误,请报告。

标签: r


【解决方案1】:

这个答案只是为了完整性,以防其他人在这里遇到类似的问题。感谢@StéphaneLaurent,他在 cmets 中提供了建议。

切换到readxl 包解决了这些问题。注意一定要查看read_xlsx调用的帮助文件;特别是对于 col_types 参数。该包将尝试在导入时设置每个向量的数据类型,如果有任何不一致,它将产生警告,例如

In read_fun(path = path, sheet_i = sheet, limits = limits,  ... :
Expecting numeric in F1107 / R1107C6: got '?'

这些不是一个严重的问题,所以不要推迟使用该软件包。谢谢,斯蒂芬!


编辑 ~ 1 周后

在另一个具有不同数据的脚本中使用readxl 后,我已切换回使用openxlsx 作为我的基本首选包。尽管readxl 可以很好地解决我最初的问题,但它抛出的warnings() 的数量真的很烦人。在第二种情况下,它变得无法使用。每次我运行一行代码(无论是否涉及readxl),它都会触发关于例如的警告。 Unknown or uninitialised column。这只能通过关闭 R 会话并重新开始来解决。我确定这只是因为我在使用readxl 时犯了一个小错误,但除非我遇到与上述日期格式错误相同的情况,否则我会坚持使用openxlsx,我通常有发现使用起来很简单。

【讨论】:

    【解决方案2】:

    将 excel 中的格式更改为日期“2012-03-14”后,这对我有用

    library(openxlsx)
    read.xlsx(xlsxFile = "The File.xlsx", sheet = "sheet 1" , detectDates = TRUE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多