如何在R中从Excel文件中读取日期?
如何在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 加拿大
如何在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")参数,有时不需要...