Вы можете использовать stringr
:
library(stringr)
quarter <- paste0("T",str_sub(vec, start = 1L, end = 1L))
vec <- paste0(quarter, " ",str_sub(vec, start = 2L))
Что дает вам:
"T1 1993" "T2 1993" "T3 1993" "T4 1993"
Обновление:
Вы можете использовать пакет zoo
для преобразования набрать yearqtr
:
vec_date <- as.yearqtr(vec, format = "T%q %Y")
Что дает нам:
"1993 Q1" "1993 Q2" "1993 Q3" "1993 Q4"
Вы также можете включить as.Date
:
vec_date <- as.Date(as.yearqtr(vec, format = "T%q %Y"))
Что дает нам:
"1993-01-01" "1993-04-01" "1993-07-01" "1993-10-01"
Все вместе:
library(zoo)
library(tidyverse)
# Your vector
vec <- c(11993, 21993, 31993, 41993)
# Substring to create "T" values
quarter <- paste0("T",str_sub(vec, start = 1L, end = 1L))
# Paste back together
vec <- paste0(quarter, " ",str_sub(vec, start = 2L))
# Keep as yearqtr
vec_date <- as.yearqtr(vec, format = "T%q %Y")
# Keep as.Date
vec_date <- as.Date(as.yearqtr(vec, format = "T%q %Y"))