r - 将带有日期的列转换为 R 中的行

标签 r dataframe dplyr data-transform

假设我们在 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_extractparse_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/

相关文章:

r - 基于 "partnership"构建集群

python - 在 Pandas 数据框中查找具有相同值的行

r - 使用 2 个条件进行变异,第一个条件是变量名称,第二个条件是变量类型

r - r 中两个表的 PIL 逊相关系数

r - 使用 mongolite 从 R 中创建新的 MongoDB 数据库

python - Scikit Learn 随机森林分类器 : How to produce a plot of OOB error against number of trees

python - 如何根据错误值找到两个 pandas 系列之间的交集

python - 从 PySpark 中的两个不同数据框中减去列的值以查找 RMSE

r - 连接重复组

r - 如何根据两个字符变量在ggplot中进行子集化?