gpt4 book ai didi

r - 如何将日期向量拆分为 k 列?

转载 作者:行者123 更新时间:2023-12-03 05:45:31 26 4
gpt4 key购买 nike

我有一个带有日期的向量,例如

library("lubridate")
vec <- seq(ymd('1990-01-01'),ymd('1993-01-01'), by = '1 year')

我想将其分成 k 列。假设 k= 2,生成的数据帧应该如下所示:

          X1         X2
1 1990-01-01 1992-01-01
2 1991-01-01 1993-01-01

第一个想法可能是这样的:

m <- matrix(vec, ncol= 2)

我知道这种方法无效,因为 matrix() 杀死了日期类:

m
[,1] [,2]
[1,] 7305 8035
[2,] 7670 8401

不幸的是,data.frame()没有ncol参数,并且在data.frame()内部使用matrix()函数会导致上面显示的问题。我找不到这个看似简单的问题的任何解决方案,我很乐意提供帮助。

最佳答案

日期在内部存储为数字,因此您可以在将其转换为所需格式后将其转换回来。

k <- 2
df <- data.frame(matrix(vec, ncol = k))
df[] <- lapply(df, as.Date, origin = "1970-01-01")

df
# X1 X2
#1 1990-01-01 1992-01-01
#2 1991-01-01 1993-01-01

关于r - 如何将日期向量拆分为 k 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55377211/

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