【问题标题】:How to transform a data table? [duplicate]如何转换数据表? [复制]
【发布时间】:2017-09-27 10:34:36
【问题描述】:

我是 R 新手,我有一个数据表 (df),如下所示:

id   month   year   count
___  _____   ____   ______
1     1      2017     12
1     2      2017     10
1     3      2017     13
2     1      2017     9
2     2      2017     18
2     3      2017     13
3     1      2017     12
3     2      2017     10
3     3      2017     10

由此,我想以如下所示的格式将数据框从长到宽重塑

id      1      2      3 
___     __    ___    ___
1       12     10     13
2       9      18     13
3       12     10     10

我尝试了 melt(df)。但抛出一个错误。感谢任何帮助。

【问题讨论】:

  • reshape(df,idvar = "id",timevar = "month",direction = "wide")

标签: r datatable reshape


【解决方案1】:

您可以使用tidyr 包中的spread,它是tidyverse 的一部分。

library(tidyverse)
df <- read_table("id   month   year   count
1     1      2017     12
1     2      2017     10
1     3      2017     13
2     1      2017     9
2     2      2017     18
2     3      2017     13
3     1      2017     12
3     2      2017     10
3     3      2017     10")

df %>% spread(month, count)
#> # A tibble: 3 x 5
#>      id  year   `1`   `2`   `3`
#> * <int> <int> <int> <int> <int>
#> 1     1  2017    12    10    13
#> 2     2  2017     9    18    13
#> 3     3  2017    12    10    10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2016-04-09
    • 2019-02-08
    • 2013-08-08
    相关资源
    最近更新 更多