先月書いたいくつかの R コードに戻りましたが、使用している reshape (0.8.4、R 2.15.2) のバージョンがその機能を変更したようです。
以下にサンプルを示します。
> library(reshape)
> so.test <- data.frame(
one = as.character(rnorm(750)),
two = as.character(rnorm(750)),
three = as.character(rnorm(750)), four = as.character(rnorm(750)))
> check <- melt(so.test)
Using one, two, three, four as id variables
これにより、元と同じ data.frame が得られます。
> table(so.test == check)
TRUE
3000
reshape2::melt でもこれを試しましたが、同じ結果が得られます。興味深いことに、melt()
関数は数値を含む data.frame で期待どおりに機能します。
> so.test2 <- data.frame(
one = rnorm(750),
two = rnorm(750),
three = rnorm(750), four = rnorm(750))
> check2 <- melt(so.test2)
Using as id variables
> head(check2)
variable value
1 one 0.2471168
2 one -0.0663480
3 one -0.0251867
4 one 2.8786207
5 one -0.2586785
6 one -0.7508927