1

先月書いたいくつかの 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
4

1 に答える 1

2

reshape と reshape2 バージョンの両方のドキュメントには、次のように書かれています。

どちらも指定しない場合、melt は factor 変数と character 変数が id 変数であると見なし、他の変数はすべて測定されます。

melt文書化されたとおりに動作することも同様です。

于 2012-12-12T19:54:38.167 に答える