我有一个大型数据库,其中的日期列包含来自Excel的日期数字,日期不完整,缺少年份(但年份在另一列中),以及一些缺少日期的单元格。我找到了如何更改日期的格式,但问题是如何过滤date
变量中的三种类型的单元格(即Excel中的日期数字、不完整的日期和空单元格)。我设法通过一个创建的列(value
)来过滤a,而真实的数据库中没有该列。
这是我的原始数据库:
这就是我想要的结果:
我所做的是用虚构的value
列过滤数据集,并将date
转换为所需的格式。
library(dplyr)
data_a <- read.csv(text = "
year,date,value
2018,43238,1
2017,43267,2
2020,7/25,3
2018,,4
2013,,5
2000,8/23,6
2000,9/21,7")
data_b <- data_a %>%
filter(value %in% c(1,2)) %>%
mutate(data_formatted = as.Date(as.numeric(date), origin = "1899-12-30"))
data_c <- data_a %>%
filter(value %in% c(3, 6, 7)) %>%
mutate(data_formatted = as.Date(paste0(year, "/", date)))
data_d <- data_a %>%
filter(value %in% c(4, 5)) %>%
mutate(data_formatted = NA)
data_final <- rbind(data_b, data_c, data_d)
我需要一次完成相同的操作,而不使用value
列。
2条答案
按热度按时间ljsrvy3e1#
您可以对方案使用do conditional,并应用不同的函数来转换为date。
编号
输出
rvpgvaaj2#
你试试看