将带有日期的列转换为R中的行 [英] Converting columns with date to rows in R

查看:89
本文介绍了将带有日期的列转换为R中的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我们在R中有一个data.frame像这样:

Let's say we have a data.frame in R like this:

d = data.frame('2019q1' = 1, '2019q2' =2, '2019q3' = 3)

看起来像这样:

  X2019q1 X2019q2 X2019q3
1       1       2       3

如何将其转换为以下形式:

How can I transform it to looks like this:

Year    Quarter    Value
2019    1          1
2019    2          2
2019    3          3


推荐答案

我们可以收集到'long'格式,并使用 str_extract 提取组件。 parse_number

We can gather into 'long' format and extract the components with str_extract or 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中的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆