与tibble合并时,使用lubridate中的parse_date_time()解析的日期会丢失其格式

法式面包

我正在抓取一个网站,并尝试将某些文本设置为日期格式。抓取和格式代码可以正常工作,但是当我尝试将date列与其余数据合并时,它将丢失其日期格式和类型。我不知道如何解决它,也找不到任何相关信息。

可重现的示例:

library(tidyverse)
library(lubridate)

test_dates <- c("Sunday, Nov 15, 2020", "Monday, Nov 16, 2020", "Thursday, Nov 19, 2020", "Sunday, Nov 22, 2020", "Monday, Nov 23, 2020"  )
dates <- parse_date_time(test_dates, "AbdY")
glimpse(dates)

x1 <- rnorm(5)
x2 <- rnorm(5)

mydata <- as_tibble(cbind(dates, x1, x2))
glimpse(mydata)

mydata <- as_tibble(cbind(as_date(dates), x1, x2))
glimpse(mydata)

这给出以下输出:

> library(tidyverse)
> library(lubridate)
> test_dates <- c("Sunday, Nov 15, 2020", "Monday, Nov 16, 2020", "Thursday, Nov 19, 2020", "Sunday, Nov 22, 2020", "Monday, Nov 23, 2020"  )

> dates <- parse_date_time(test_dates, "AbdY")
> glimpse(dates)
 POSIXct[1:5], format: "2020-11-15" "2020-11-16" "2020-11-19" "2020-11-22" "2020-11-23"

> x1 <- rnorm(5)
> x2 <- rnorm(5)

> mydata <- as_tibble(cbind(dates, x1, x2))
> glimpse(mydata)
Rows: 5
Columns: 3
$ dates <dbl> 1605398400, 1605484800, 1605744000, 1606003200, 1606089600
$ x1    <dbl> -0.1142434, -0.1638176, -0.8392169, 1.2231866, -1.3134138
$ x2    <dbl> -0.6944343, -0.2210215, 1.0754251, -0.4685189, -0.2033346

> mydata <- as_tibble(cbind(as_date(dates), x1, x2))
> glimpse(mydata)
Rows: 5
Columns: 3
$ V1 <dbl> 18581, 18582, 18585, 18588, 18589
$ x1 <dbl> -0.1142434, -0.1638176, -0.8392169, 1.2231866, -1.3134138
$ x2 <dbl> -0.6944343, -0.2210215, 1.0754251, -0.4685189, -0.2033346

正如您在最后看到的那样,该变量恢复为双精度,而不是保持先前的POSIXct或任何其他与日期相关的格式。有什么建议吗?

阿克伦

我们可以在数据集上使用tibbledata.frame直接使用

tibble(dates, x1, x2)

要么

data.frame(dates, x1, x2)

而不是cbindascbind转换为matrixand,矩阵只能有一个类型。默认情况下,分配的方法cbindcbind.matrix如果要使用cbind,请使用cbind.data.frame

cbind.data.frame(dates, x1, x2)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Lubridate-如何使用parse_date_time正确解析十进制分钟

为什么sapply不能使用lubridate的parse_date_time而lapply却不使用?

使用 parse_date_time 解析日期:为什么“2004-04-04 02:00”会失败?

如何使用 parse_date_time() 将日期变量转换为不同的日期时间变量?

使用lubridate在R中解析多种格式的日期

parse_date_time()将DayofYear转换为日期

R dplyr :: mutate_和lubridate :: parse_date_time标准评估无法正常工作

parse_date_time返回NA的向量

使用 lubridate 解析具有 mm/dd/yyyy 0:00:00 格式的日期时如何修复错误

使用 lubridate 包在 R 中合并日期及其相关值

parse_date_time函数内的下标问题

parse_date_time 转换字符向量的问题

查找无法在R Lubridate中解析的日期

MPAndroid 日期格式和解析丢失精度

在Javascript中解析日期时指定日期格式

使用lubridate格式化多个日期样式时出现问题

在 R Lubridate 中解析我的日期时间时出现问题

变量中的“ whois”输出丢失其格式

尝试使用 lubridate() 在 Base R 中以日期/时间格式添加更多轴标记

使用purrr :: map在R中取消嵌套JSON时丢失名称(取消列表,t,as_tibble)

使用SimpleDateFormat.parse()解析日期时出现NumberFormatException

使用R中的lubridate从日期确定季节

在aspose词中使用FieldMergingCallback时,MS Word邮件合并字段格式丢失

在 R 中,取一个日期字符串并将其转换为日期时间格式(使用 lubridate)

R中的日期循环显示丢失格式

在R Shiny中使用lubridate设置日期格式

如何使用 lubridate 轉換日期列並將其保留在數據框中?

使用Boost.Date_Time解析带时区的日期时间?

在 Javascript 中实现日期时,日期会发生变化