假设我们在 R 中有一个像这样的 data.frame:
d = data.frame('2019q1' = 1, '2019q2' =2, '2019q3' = 3)
看起来像这样:
X2019q1 X2019q2 X2019q3
1 1 2 3
我怎样才能把它变成这样:
Year Quarter Value
2019 1 1
2019 2 2
2019 3 3
最佳答案
我们可以收集
成“长”格式并用str_extract
或parse_number
提取组件
library(dplyr)
library(tidyr)
library(stringr)
gather(d) %>%
transmute(Year = readr::parse_number(key),
Quarter = as.numeric(str_extract(key, "(?<=q)\\d+$")), value)
# Year Quarter value
#1 2019 1 1
#2 2019 2 2
#3 2019 3 3
关于r - 将带有日期的列转换为 R 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58754184/