r语言 - 以字符形式从excel文件导入不完整的日期



我想将我的数据从excel导入到R.在excel文件中,我有具有NA值的列,不完整和完整的日期,即它在一个单元格中表示2022-05-00,在同一列的另一个单元格中,我有一个日期表示2020-04-24,这是一个完整的日期。关于这个问题,我有好几篇专栏文章。

然而,我相信我可以通过将所有日期列作为字符导入R来解决这个问题,但是我怎么做呢?这意味着当我导入时,我希望我所有的日期列都是字符而不是日期格式,以避免这个问题。

当我尝试将它们导入为数字时,将产生NA值,当我尝试将它们导入为字符时,有些将转换为数字值,不完整的将保持其"正常"。在同一列上格式化,即2022-05-00。

我正在使用rstudio默认的导入库"readxl"现在。

一个解决方案是:从excel中导入后,我们可以使用
parsedate包中的parse_date函数:参见?parsedate

library(dplyr)
df <- tibble(dates = c("2022-05-00", "2020-04-24"))
library(parsedate)
df %>% 
mutate(dates = parse_date(dates))

dates              
<dttm>             
1 2022-01-05 00:00:00
2 2020-04-24 00:00:00

如果您想为导入的变量强制使用特定的格式,您可以使用read_excel中的col_types选项。假设您有一个文件,其中有一个数字ID变量,您希望保持为数字,并且有三列日期,您可以使用:

library(readxl)
df <- read_excel("myfile.xlsx", col_types = c("numeric", "text", "text", "text"))

如果你想导入所有变量作为文本,你可以使用col_types = "text",因为它是循环使用的。

也就是说,如果你想使用这些变量作为实际日期,你仍然会遇到不完整的日期将被设置为缺失或可能被错误解析的问题,如果这是你的问题,你应该针对这个问题发布一个具体的问题。

最新更新