我有一个数据集,其中包含一些员工的姓名,日期,数量和工作时间。示例数据集如下所示:
| Name | Date | Amount | 10/1/2018 | 10/2/2018 | 10/3/2018 | 10/4/2018 | 10/5/2018 |
|---------|:----:|------:|-----------|-----------|-----------|-----------|-----------|
| Mike | | 50 | - | - | - | - | - |
| Mike | | 167 | - | - | - | - | 8.0 |
| Mike | | 560 | - | - | - | 8.0 | - |
| Kristie | | 467 | - | - | - | - | - |
| Kristie | | 900 | - | - | - | - | - |
| Kristie | | 65 | - | - | - | - | - |
| Kristie | | 90 | - | - | - | - | - |
| Kristie | | 665 | - | - | - | - | - |
| Kristie | | 864 | - | - | - | - | - |
| Joe | | 566 | - | - | - | - | - |
| Joe | | 676 | - | - | - | - | - |
| Joe | | 40 | 8.0 | - | - | - | - |
| Joe | | 45 | - | - | - | - | - |
正如人们所看到的,“日期”列中的值为空白,并在各列中进行了解析。每天的日期范围是从10/1/2018到11/31/2019。因此,每个月的每个日期都显示在列中。如上例所示,这些日期的值在某些地方为“ 8”。该值表示工作小时数。当我在R中上传此excel文件时,日期将转换为字符,例如,“ 10/01/2018”将转换为“ 43374”,其他日期也将转换为字符。如何确定这些日期保留其原始格式?
Windows上的Excel(而不是Mac上的Excel)使用1899年12月30日的起源,并在其后数天。要转换日期数字,请使用此:
(daycount <- as.numeric("43374"))
# [1] 43374
(dayYMD <- as.Date(daycount, origin="1899-12-30"))
# [1] "2018-10-01"
(dayMDY <- format(dayYMD, "%m/%d/%Y"))
# [1] "10/01/2018"