gpt4 book ai didi

r - 如何在同一列中导入具有混合日期类型的 xlsx?

转载 作者:行者123 更新时间:2023-12-04 12:41:53 24 4
gpt4 key购买 nike

我正在尝试将 Excel 电子表格导入 R(通过 read.xlsx2())。 Excel 数据有一个日期列。该日期列包含混合类型的日期格式,例如有些行是 42669 ,有些是日期格式,例如26/10/2016 .
read.xlsx2()将其作为一个因素读入,因此我使用下面的代码将其转换为 as.Date。这适用于数字形式的所有日期(例如 42669 ),但 R 警告我它添加了一些 NA s(对于格式为 26/10/2016 的那些)。我的问题是如何为所有变量导入具有正确日期的 excel 数据,即告诉 R 有混合数据?

library(xlsx)
#Import excel file
df <- read.xlsx2(mydata, 1, header=true)

#Output = recd_date : Factor w/ 590 levels "", "26/10/2016", "42669" ...
levels(df$recd_date)

#Output = [1] "" "26/10/2016" "42669" ...

#This works for numeric dates:

df$recd_date <- as.Date( as.numeric (as.character(df$recd_date) ),origin="1899-12-30")

#Output = recd_date : Date, format "2016-10-26" ...

#but it doesn't work for dd/mm/yyyy dates, R just replaces these with NA

最佳答案

试试 convert_to_date从 Janitor 包中,指定 lubridate 包中与您的日期格式匹配的字符到日期函数:

library(janitor)
x <- c("26/10/2016", "42669")
convert_to_date(x, character_fun = lubridate::dmy)
#> [1] "2016-10-26" "2016-10-26"

自我宣传免责声明:我维护这个包。我正在添加此答案,因为创建此函数是为了解决 Excel 日期数字和格式化日期混合在同一变量中的确切问题。

关于r - 如何在同一列中导入具有混合日期类型的 xlsx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54462712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com