如何使用R标准包或dplyr透视表?

ix0qys7i  于 2022-12-20  发布在  其他
关注(0)|答案(2)|浏览(139)

我有一张table:

library("eurostat")
library("dplyr")

d <- get_eurostat("prc_hicp_manr") %>%
  filter(coicop == "CP00")

我想创建一个矩阵,日期在行中,国家在列中,我该怎么做?
注意,我不能使用上面列出的库以外的库。

gg58donl

gg58donl1#

我们可以先创建geo因子类,然后使用xtabs

d2$geo <- factor(d2$geo)
xtabs(values ~ time + geo, d2)
geo
time         Austria Belgium Bulgaria Croatia Cyprus Czechia Denmark Estonia Finland France Greece Hungary Ireland Italy Latvia Lithuania Luxembourg Malta Netherlands Poland Portugal
  2000-02-01     1.9     2.1      8.9     3.2    4.7     3.5     2.8     2.9     2.7    1.4    2.6    10.0     4.6   2.4    3.4       0.9        2.6   3.3         1.5   10.5      1.6
  2000-03-01     1.9     2.5      9.6     3.5    5.2     3.8     2.9     3.1     3.2    1.6    2.8     9.8     5.0   2.5    3.2       1.0        3.0   3.4         1.6   10.3      1.4
  2000-04-01     1.8     2.3      9.2     3.9    5.9     3.4     2.9     3.0     2.5    1.3    2.1     9.4     5.1   2.4    3.7       0.9        3.2   3.4         1.7    9.9      1.9
  2000-05-01     1.6     2.4     10.3     3.4    6.0     3.7     2.9     2.8     2.7    1.5    2.6     9.2     5.1   2.5    3.0       0.5        2.9   3.6         2.0    9.8      2.4
  2000-06-01     2.4     3.0     11.6     4.5    5.2     4.1     2.9     3.1     3.1    1.8    2.2     9.3     5.4   2.8    2.4       1.3        4.4   3.3         2.5   10.6      2.8....
.....etc.
oewdyzsn

oewdyzsn2#

如果您需要tidyverse解决方案,可以使用pivot_wider

tidyr::pivot_wider(d2[3:5], names_from = geo, values_from = values)
#>          time Austria Belgium Bulgaria Cyprus Czechia Denmark Estonia
#> 1  2022-09-01    11.0    12.1     15.6    9.0    17.8    11.1    24.1
#> 2  2022-08-01     9.3    10.5     15.0    9.6    17.1     9.9    25.2
#> 3  2022-07-01     9.4    10.4     14.9   10.6    17.3     9.6    23.2
#> 4  2022-06-01     8.7    10.5     14.8    9.0    16.6     9.1    22.0
#> 5  2022-05-01     7.7     9.9     13.4    8.8    15.2     8.2    20.1
#> 6  2022-04-01     7.1     9.3     12.1    8.6    13.2     7.4    19.1
#> 7  2022-03-01     6.6     9.3     10.5    6.2    11.9     6.0    14.8
#> 8  2022-02-01     5.5     9.5      8.4    5.8    10.0     5.3    11.6
#> 9  2022-01-01     4.5     8.5      7.7    5.0     8.8     4.9    11.0
#> 10 2021-12-01     3.8     6.6      6.6    4.8     5.4     3.4    12.0
#> ...etc

相关问题