【问题标题】:R date from Excel not convertingExcel中的R日期未转换
【发布时间】:2019-04-13 03:07:35
【问题描述】:

我在 stackoverflow 上查找了以下代码,无法将 Excel 正确转换为 Date()。 dput() 显示来自 Excel 的输入日期。如何转换这些数字?

    data.3$Date <- as.Date(as.numeric(data.3$Date), origin="1899-12-30")
    z <- as.yearmon("39225",format="%Y%m")

    dput(data.3$Date)
    structure(c(-25545, -25551, -25529, -25521, -25545, -25522, -25544, 
-25538, -25547, -25548, -25546, -25521, -25526, -25521, -25537,

【问题讨论】:

  • 在 R 中,当我读取.xlsx() 时,我包含了 as.data.frame=TRUE。有问题的字段是 Date 字段,但在 data.frame 中它表现为 Factor:: str(data.5) 'data.frame': 1555 obs。 4 个变量:$ 日期:因子 w/ 139 个级别“2007 年 5 月 12 日”
  • 从 str() data.frame 中,可以看出 $Date: Factor w/139 级别具有“2007 年 5 月 12 日”。所以在数据文件中我得到了数字,比如 41411 等。
  • 当你读入数据框时,写stringsAsFactors = FALSE很有帮助,然后日期(和所有其他字段)将显示为字符串。然后使用 lubridate 包中的 as.Date 将其转换为日期会容易得多
  • 好的,我会做 stringsAsFactors...
  • 这是一个 read.xlsx 是否在 read.xlsx 上可用 stringsAsFactors = FALSE?是的

标签: r excel date


【解决方案1】:

要回答最后 5 个 cmets 问题...我将此代码应用到 Excel 中的日期字段,使用 strptime(data, format=),例如,

abberville_df4  <- subset(data.4, ((
  (data.4$Original.Hospital.Location == 'Abbeville' 
   & strptime(data.4$Date, format="%Y-%m-%d") >= "2007/04/30" 
   & strptime(data.4$Date, format="%Y-%m-%d") <= "2007/08/01"))))

【讨论】:

  • 是的,现在使用 strptime() 格式可以正常工作;但是,在2007/04/30的条件测试中,我发现数据已经被颠倒了,所以我需要将format="%Y-%m-%d" from format="%d-%m-%是”
猜你喜欢
  • 1970-01-01
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 2015-05-08
  • 1970-01-01
  • 2017-08-31
相关资源
最近更新 更多