从Excel中读取日期

时间:2017-11-02 08:47:42

标签: r excel date

我在excel表格中的数据中有两个日期(在excel中格式化为dd-mm-yyyy)列。

Date Delivery   Date Collection
06-08-17    15-08-17
11-04-17    15-04-17
24-01-17    24-01-17
11-08-16    14-08-16

有很多问题。 目前我正在阅读数据的子集(手动由另一个Excel工作表中的前100行组成。)。

  1. excel中相同格式的日期在R。

  2. 中的显示方式不同
  3. 当我读取整个数据集时,它们看起来就像在Data.Collection中一样。

    data <- read.xlsx("file.xlsx", sheetName='subset', startRow=1)

  4. R中显示的数据输出

    Date formats in R

    我需要将它们全部显示在Data.Delivery中,因为我需要在分析后将结果写回来。

    我也在尝试使用

    将其设为R中的日期
    dates <- data$Date.Delivery
    as.Date(dates, origin = "30-12-1899",format="%d-%m-%y")
    

2 个答案:

答案 0 :(得分:2)

要在阅读文件后将Date.Collection格式化为Data.Delivery,请尝试

# see the str of your data
str(data)
# if Date.Collection is characher
data$Date.Collection <- as.numeric(data$Date.Collection)
# if Date.Collection is factor
data$Date.Collection <- as.numeric(levels(data$Date.Collection))[data$Date.Collection]
# conversion
data$Date.Collection <- as.Date(data$Date.Collection - 25569, origin = "1970-01-01")

答案 1 :(得分:0)

或者您可以使用“ gdata”或“ XLConnect”包读取文件,以将列作为因子读取。 然后使用lubridate中的ymd()将其转换为日期

require(gdata) data = read.xls (path, sheet = 1, header = TRUE) data$Date.Collection <- ymd(data$Date.Collection)