从excel文件中导入不完整的日期作为字符

0mkxixxg  于 2023-01-14  发布在  其他
关注(0)|答案(2)|浏览(97)

我想将我的数据从excel导入R。在excel文件中,我有NA值、不完整和完整日期的列,即一个单元格中显示2022-05-00,同一列的另一个单元格中显示2020-04-24,这是一个完整的日期。我有几个列存在此特定问题。
但是我相信我可以通过将所有日期列作为字符导入到R中来解决这个问题,但是我该怎么做呢?也就是说,当我导入时,我希望所有的日期列都是字符格式,而不是日期格式,以避免这个问题。
当我尝试将它们作为数字导入时,将产生NA值,当我尝试将它们作为字符导入时,一些将变成数字值,不完整的将保持其“正常”格式,即同一列上的2022-05-00。
我现在使用的是Rstudios默认导入库“readxl”。

fwzugrvs

fwzugrvs1#

一种解决方案可能是:从excel导入后,我们可以使用parse_date函数
parsedate封装:参见?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
dphi5xsq

dphi5xsq2#

如果您想强制导入的变量使用特定的格式,您可以使用read_excel中的col_types选项。假设您有一个文件,其中包含一个数字ID变量,您想将其保留为数字,并且有三列包含日期,您可以执行以下操作:

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

如果你想把所有变量作为文本导入,你可以使用col_types = "text",因为它是循环使用的。
也就是说,如果你想使用这些变量作为实际日期,你仍然会遇到不完整的日期将被设置为缺失或可能被错误解析的问题,如果这是你的问题,你应该发布一个具体的问题。

相关问题