如何将时间戳转换为年份?

时间:2015-02-10 21:14:25

标签: r

我有一个包含此类列数据的数据框。

1906-02-20
1906-02-21

我想创建包含年,月和日的单独列。

预期输出:

1906 02 20
1906 02 21

之前我曾使用像strptime和lubridate这样的东西。但是无法解决这个问题。

3 个答案:

答案 0 :(得分:1)

 format(as.Date('2014-12-31'),'%Y %m %d')

(显然你想用日期向量替换as.Date('2014-12-31'))。

给定提供的格式字符串,

format()将日期转换为stings。对于个别年份,月份和日期值,您需要:

myData$year <- format(as.Date('2014-12-31'),'%Y')
#> "2014"
myData$month <- format(as.Date('2014-12-31'),'%m')
#> "12"
myData$day <- format(as.Date('2014-12-31'),'%d')
#> "31"

当我需要查找格式字符串的含义时,我经常会引用this page

答案 1 :(得分:0)

看看这个:

X <- data.frame()
X <- rbind(strsplit(x = "1906-02-20", split = "-")[[1]])
colnames(X) <- c("year", "month", "day")

答案 2 :(得分:0)

尝试separate

中的tidyr功能
library(tidyr)
separate(df, "V1", into = c("year", "month", "day"), sep = "-")
#   year month day
# 1 1906    02  20
# 2 1906    02  21

数据

df <- read.table(text = "
1906-02-20
1906-02-21
")