2017-09-27 2 views
-1

私は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 

私はメルト(df)を試しました。しかし、エラーを投げます。何か助けに感謝します。

+1

'変形(DF、idvar = "ID"、timevarは= "月"、方向= "幅")' –

答えて

2

spreadは、tidyverseの一部であるtidyrパッケージから利用できます。

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 
関連する問題