如何修复具有混合字符的数据框中的日期
How to fix dates in a data frame that have mixed characters
我通过openxlsx导入了一个数据集到一个数据框中。电子表格有多个字段,包括几个日期字段。在这些日期字段中有一些字符——特别是 "A" 和“*”。所以我的数据集是这样的:
一个 | 43998
乙 | 44316
C | 44284
D | 2019 年 3 月 11 日 A
E | 44323
F | 20 年 7 月 29 日*
我正在使用多个日期字段,并且正在寻找一种快速修复它们的方法(与过滤相反,str_replacing,然后更改数据类型,然后重新绑定)。
我一直在研究 lubridate,但是当日期如此不同时我找不到方法。
library(openxlsx)
library(lubridate)
data <- read.xlsx(file)
data2 <- data %>% mutate(fixed_date1 = ifelse(str_detect(date1,
" A")==TRUE,as.Date(date1, guess_formats(date1,
"dmy")),as.Date(as.numeric(date1)-2,origin = "1900-01-01")))
这仍然没有说明那里漂浮的星号,我想我必须在 ifelse 语句中构建一个 str_detect(date1, "\\*") 行...
我只是希望找到一种方法,一次滑动即可将其应用到每一列。
提前致谢。
我用几行就解决了:
df$date1 <- str_replace_all(df$date1, " A", "")
df$date1 <- str_replace_all(df$date1, "\*", "")
df <- df %>% mutate(fixed_date1 = ifelse(str_detect(date1, "-") == TRUE, as.Date(date1,
"%d-%b-%y"), as.Date(as.numeric(date1)-2, origin = "1900-01-01")))
所以我找到并替换了所有特殊字符,然后根据其中是否有“-”进行了日期转换。
可能有更简单的方法,但这对我有用。
我通过openxlsx导入了一个数据集到一个数据框中。电子表格有多个字段,包括几个日期字段。在这些日期字段中有一些字符——特别是 "A" 和“*”。所以我的数据集是这样的:
一个 | 43998
乙 | 44316
C | 44284
D | 2019 年 3 月 11 日 A
E | 44323
F | 20 年 7 月 29 日*
我正在使用多个日期字段,并且正在寻找一种快速修复它们的方法(与过滤相反,str_replacing,然后更改数据类型,然后重新绑定)。
我一直在研究 lubridate,但是当日期如此不同时我找不到方法。
library(openxlsx)
library(lubridate)
data <- read.xlsx(file)
data2 <- data %>% mutate(fixed_date1 = ifelse(str_detect(date1,
" A")==TRUE,as.Date(date1, guess_formats(date1,
"dmy")),as.Date(as.numeric(date1)-2,origin = "1900-01-01")))
这仍然没有说明那里漂浮的星号,我想我必须在 ifelse 语句中构建一个 str_detect(date1, "\\*") 行...
我只是希望找到一种方法,一次滑动即可将其应用到每一列。
提前致谢。
我用几行就解决了:
df$date1 <- str_replace_all(df$date1, " A", "")
df$date1 <- str_replace_all(df$date1, "\*", "")
df <- df %>% mutate(fixed_date1 = ifelse(str_detect(date1, "-") == TRUE, as.Date(date1,
"%d-%b-%y"), as.Date(as.numeric(date1)-2, origin = "1900-01-01")))
所以我找到并替换了所有特殊字符,然后根据其中是否有“-”进行了日期转换。
可能有更简单的方法,但这对我有用。