3

tidyr を使用してワイド データをロング データに変換する方法を学ぼうとしています。私のデータが次のようになっているとします。

df1 <- data.frame(V1=c(1.5,7.4), 
                  V2=c(6.7,8.8),
                  sim=c(1,2))

私はこのように私を変換したい:

df2 <- data.frame(sim=c(1,1,2,2),
                  Value=c(1.5,6.7,7.4,8.8))

収集は使用する必要がある機能だと思いますが、ヘルプ ファイルがわかりません。これは私が今持っているものです:

df1 %>%
   gather(key=sim, value=V1:V2)

エラーは「エラー: 列の指定が無効です」と表示されます

ありがとう!

4

1 に答える 1

4

試す

library(tidyr)
df1 %>%
    gather(sim1, Value, V1:V2) %>% 
    select(-sim1) %>%
    arrange(sim)
#    sim Value
#1   1   1.5
#2   1   6.7
#3   2   7.4
#4   2   8.8

によると?gather

  gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)

key,value: 出力で作成するキー列と値列の名前。

...: 収集する列の指定。そのままの変数名を使用します。「x:z」で x と z の間のすべての変数を選択し、「-y」で y を除外します。その他のオプションについては、select ドキュメントを参照してください。

于 2015-04-16T15:33:07.390 に答える