如何从R中的excel文件中读取日期?

时间:2017-01-15 17:09:45

标签: r

我正在尝试在R中加载一个包含两个日期列和一个国家/地区列的Excel文件。你能告诉我如何将文件读入R?

数据结构:

Actual_Shipment_Date    Expected_Shipment_Date  Country No_of_Days_Deviated
01-03-2016  07-03-2016  USA 
22-12-2016  05-01-2017  UK  
20-11-2016  10-11-2016  INDIA   
12-02-2017  22-02-2017  HUNGARY 
14-07-2016  15-07-2016  EGYPT   
25-09-2016  30-09-2016  CHINA   
28-11-2016  31-12-2016  JAPAN   
08-05-2016  17-05-2016  AUSTRALIA   
11-04-2016  14-09-2016  RUSSIA  
22-03-2016  25-06-2016  BRAZIL  
24-09-2016  22-04-2016  MEXICO  
07-07-2016  07-11-2016  FRANCE  
08-11-2016  05-04-2016  GREECE  
17-11-2016  10-01-2017  SPAIN   
01-12-2016  01-01-2017  SINGAPORE   
07-01-2017  22-12-2016  POLAND  
11-12-2016  13-12-2016  CHILE   
09-09-2016  10-10-2016  AFGANISTAN  
08-05-2016  25-07-2016  TAIWAN  
26-07-2016  05-08-2016  CANADA  

enter image description here

1 个答案:

答案 0 :(得分:1)

要直接从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适用于dplyrtibbles,因为它会返回tbl_df