20

私はmothurからの希薄化出力を使用していますこれにより、基本的に、サンプリングされたシーケンスの数といくつかのサンプルの一意のシーケンスの数を含むデータセットが得られます。このデータを視覚化するためにggplot2を使用したいので、を使用meltしてからフォーマットに移行する必要がwideありlongます。

問題は、のエラーのためにこれを機能させる方法が見つからないことですmelt。これは基本的に

エラー:id変数がデータに見つかりません:1、3、6、(...など)

元のデータセットのサイズが原因で、ここで共有することは実用的ではありませんが、次のコードを使用して同じ問題を再現できるはずです。

a<-seq(0,300,3)
b<-runif(length(a))
c<-runif(length(a))
d<-as.data.frame(cbind(a,b,c))
d$a<-as.factor(d$a)
melt(d,d$a)

これはまったく同じエラーを発生させます:

エラー:id変数がデータに見つかりません:0,3,6,9、(...)

私は自分が間違っていることを理解できません。私はubuntuサーバー12.04でR2.15.1を使用しています。関数reshape::meltreshape2::melt結果の両方で同じエラーが発生します。

4

1 に答える 1

15

次を使用する必要があります。

melt(d, id.vars="a")
      a variable       value
1     0        b 0.019199459
2     3        b 0.693699677
3     6        b 0.937592641
4     9        b 0.299259963
5    12        b 0.485403439
...

の助けから?melt.data.frame


溶けるデータデータフレーム

id変数のid.vars
ベクトル。整数(変数の位置)または文字列(変数名)にすることができます空白の場合、測定されていないすべての変数を使用します

したがって、id.vars引数は名前の文字ベクトル、たとえば「a」または数値ベクトル、たとえば1。このベクトルの長さは、IDとして必要な列の数と同じである必要があります。

代わりに、データに列があるよりもはるかに多くの要素を含む因子を使用しました。

于 2012-09-07T14:39:30.207 に答える