如何在R中从Excel文件中读取日期?

13 浏览
0 Comments

如何在R中从Excel文件中读取日期?

我正在尝试在R中加载一个具有两个日期列和一个国家列的Excel文件。请告诉我如何将文件读入R中。

数据结构:

实际发货日期 预计发货日期 国家 偏离天数

01-03-2016 07-03-2016 美国

22-12-2016 05-01-2017 英国

20-11-2016 10-11-2016 印度

12-02-2017 22-02-2017 匈牙利

14-07-2016 15-07-2016 埃及

25-09-2016 30-09-2016 中国

28-11-2016 31-12-2016 日本

08-05-2016 17-05-2016 澳大利亚

11-04-2016 14-09-2016 俄罗斯

22-03-2016 25-06-2016 巴西

24-09-2016 22-04-2016 墨西哥

07-07-2016 07-11-2016 法国

08-11-2016 05-04-2016 希腊

17-11-2016 10-01-2017 西班牙

01-12-2016 01-01-2017 新加坡

07-01-2017 22-12-2016 波兰

11-12-2016 13-12-2016 智利

09-09-2016 10-10-2016 阿富汗

08-05-2016 25-07-2016 台湾

26-07-2016 05-08-2016 加拿大

0
0 Comments

如何在R中从Excel文件中读取日期?

要直接从xlsx文件中读取表格,可以使用readxl包。

read_excel函数会自动猜测你的日期时间列。

如果你的数据在文件的第一个工作表中:

library(readxl)
Tab <- read_excel("path/to/file.xlsx", sheet = 1)
Tab
#>    Actual_Shipment_Date Expected_Shipment_Date    Country
#> 1            2016-03-01             2016-03-07        USA
#> 2            2016-12-22             2017-01-05         UK
#> 3            2016-11-20             2016-11-10      INDIA
#> 4            2017-02-12             2017-02-22    HUNGARY
#> 5            2016-07-14             2016-07-15      EGYPT
#> 6            2016-09-25             2016-09-30      CHINA
#> 7            2016-11-28             2016-12-31      JAPAN
#> 8            2016-05-08             2016-05-17  AUSTRALIA
#> 9            2016-04-11             2016-09-14     RUSSIA
#> 10           2016-03-22             2016-06-25     BRAZIL
#> 11           2016-09-24             2016-04-22     MEXICO
#> 12           2016-07-07             2016-11-07     FRANCE
#> 13           2016-11-08             2016-04-05     GREECE
#> 14           2016-11-17             2017-01-10      SPAIN
#> 15           2016-12-01             2017-01-01  SINGAPORE
#> 16           2017-01-07             2016-12-22     POLAND
#> 17           2016-12-11             2016-12-13      CHILE
#> 18           2016-09-09             2016-10-10 AFGANISTAN
#> 19           2016-05-08             2016-07-25     TAIWAN
#> 20           2016-07-26             2016-08-05     CANADA

日期列会按照所需的格式转换为Posixct类型。

str(Tab)
#> Classes 'tbl_df', 'tbl' and 'data.frame':   20 obs. of  3 variables:
#>  $ Actual_Shipment_Date  : POSIXct, format: "2016-03-01" "2016-12-22" ...
#>  $ Expected_Shipment_Date: POSIXct, format: "2016-03-07" "2017-01-05" ...
#>  $ Country               : chr  "USA" "UK" "INDIA" "HUNGARY" ...

readxl与dplyr和tibbles很好地配合使用,因为它返回一个tbl_df对象。

有时我需要强制使用col_types = c(rep("date", 2), "text")参数,有时不需要...

0