我正在抓取一个网站,并尝试将某些文本设置为日期格式。抓取和格式代码可以正常工作,但是当我尝试将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或任何其他与日期相关的格式。有什么建议吗?
我们可以在数据集上使用tibble
或data.frame
直接使用
tibble(dates, x1, x2)
要么
data.frame(dates, x1, x2)
而不是cbind
ascbind
转换为matrix
and,矩阵只能有一个类型。默认情况下,分配的方法cbind
是cbind.matrix
。如果要使用cbind
,请使用cbind.data.frame
cbind.data.frame(dates, x1, x2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句