【问题标题】:Unable to change the date format for as.Date to be able to read the date when importing using read.csv()无法更改 as.Date 的日期格式,以便在使用 read.csv() 导入时能够读取日期
【发布时间】:2017-01-25 07:59:05
【问题描述】:

当我使用 write.csv(XYZ) 导出到 excel 时,整个列中的日期格式更改为:

01 01 2016

月、日、年有差距

接下来,当我使用“read.csv”导入数据并使用:

as.Date(XYZ$date),日期格式不变。

如果我尝试对日期列执行任何操作,输出是:

filter_impl(.data, dots) 中的错误:字符串不在 标准明确格式

请帮我解决这个问题。我也尝试在 Excel 中更改日期的格式,但它似乎无法识别从 R 导出的格式。

【问题讨论】:

  • 当您说格式“更改”时,您指的是在 Excel 中是如何显示的吗?您是否查看过文本文件本身(使用文本编辑器)? Excel 经常在导入时重新格式化单元格,其控件在 Excel 中,而不是在 R 中。
  • 阅读R reproducible example。使用str(XYZ)dput(XYZ) 的输出编辑您的帖子。
  • 是的@rosscova 已签入 excel。似乎对 excel 中的格式进行了某种永久性更改,并且我应用的除 / 和 - 之外的任何格式都将起作用。基本上目标是更改 d//m/yy 或 d-m-y 中的日期,以便 as.Date 可以识别它并且我可以执行操作。
  • 查看我在下面发布的答案。这有帮助吗?
  • Excel 以一种奇怪的方式改变了格式,对我来说,这是一种陌生的方式。如果没有 Excel,我看不出我们如何重现这一点。

标签: r date


【解决方案1】:

如果您的问题是导入 Excel 然后再次导出以返回 R 会更改日期格式,请尝试在导入回 R 后应用类似的内容:

as.Date( XYZ$date, format = "%d %m %Y" )

这指定了 R 的 as.Date 函数要转换的日期格式。

注意:最好通过以下方式避免此问题:a)告诉 Excel 不要转换您的日期值,或 b)完全避免使用 Excel :)

【讨论】:

  • 我尝试了每个排列和组合: as.Date( XYZ$date, format = "%d %m %Y" ) 不幸的是它不起作用。我在工作中四处打听,其他分析师也面临这个问题。但是,是的,您不导出到 Excel 的建议很有帮助。谢谢你。由于我是 R 新手,我很想知道您是否使用过 Excel 中的 RExcel Add In 或 R 中的 Excel 包?我也在考虑使用excel。或者,如果您对如何使用 R & Excel 而无需每次都导入/导出有任何建议
  • 就您所描述的而言,这应该可行。它以什么方式不起作用?您可以提供数据样本(使用dput),以便我们更好地了解它。
猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多