【问题标题】:Reshape a data frame that have multiple keys in column names from wide to long将列名中具有多个键的数据框从宽变为长
【发布时间】:2018-06-19 15:59:24
【问题描述】:

我知道已经有很多重塑页面,但我没有找到我想要的,而且我的问题有点独特。

我有以下数据集:

df <- data.frame(Year=rep(1:4,4),id=rep(1:4,each=4),key1equals1.key2equals1.key3equals1=1,key1equals2.key2equals1.key3equals1=2,key1equals1.key2equals2.key3equals2=3,key1equals2.key2equals1.key3equals2=4)

本质上,有五个key:Year、id、key1、key2、key3

key1、key2、key3的值都包含在列名中。

我想关注数据集:

Year id key1 key2 key3 value

如果可能的话,我想使用base R。

【问题讨论】:

  • 请显示所需的结果 data.frame,否则您的要求不清楚

标签: r


【解决方案1】:

从 Hadley 的回答 here 中汲取灵感:

library(tidyr)

df %>%
  gather(key, value, -Year, -id) %>%
  extract(key, c("key1", "key2", "key3"), 'key1equals([0-9])\\.key2equals([0-9])\\.key3equals([0-9])')

【讨论】:

    猜你喜欢
    • 2015-07-02
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多