2017-06-14 25 views
1

betadisper関数(veganパッケージ)を実行しようとしていて、エラーを返します。betadisper関数のエラー - veganパッケージ

hom.cov <- betadisper(morf.dist, sexo) 

、それは私に、このエラーをretorns:これは私が何をすべきかです

Error in sort.list(y) : 'x' must be atomic for 'sort.list' 
Have you called 'sort' on a list? 

は、それから私は、トレースバックに実行します。私はこれを見たとき

traceback() 
5: stop("'x' must be atomic for 'sort.list'\nHave you called 'sort' on 
a list?") 
4: sort.list(y) 
3: factor(x) 
2: as.factor(group) 
1: betadisper(morf.dist, sexo) 

は、私が変換しようとしました"as.factor"の因数でベクトル "sexo"を実行してから再度実行しますが、同じエラーが返されました。私が起こった可能性がわからない

env <- read.csv("DoubsEnv.csv", row.names=1) 
env.pars2 <- as.matrix(env[, c(1, 9, 10)]) 
env.pars2.d1 <- dist(env.pars2) 
(env.MHV <- betadisper(env.pars2.d1, gr)) 
Error in x - c : arreglos de dimensón no compatibles 

traceback() 
2: Resids(vectors[, pos, drop = FALSE], centroids[group, pos, drop = 
FALSE]) 
1: betadisper(env.pars2.d1, gr) 

:だから私は、「Rと数値エコロジー」の例を使用して「betadisperを()」を実行し、私は別のエラーを与えることを試みました。誰でも助けてくれますか?

ありがとうございます!

答えて

1

は、sexoが原子ではないと主張する。これはもっとも明白なメッセージではありませんが、sexoは値の単純なベクトルではありませんが、データフレームやリストなどである可能性があります。問題

str(sexo) 

あなたが何を得るかをご覧ください。出力にdata.frameまたはlistのようなテキストが表示され、ドル記号($)が表示された場合は、単純な構造がありません。あなただけaの代わりにa$aを使用する必要があります。この場合、

> str(a) 
List of 1 
    $ a: Factor w/ 4 levels "BF","HF","NM",..: 4 1 NA 4 2 2 2 2 2 1 ... 

:たとえば、次の出力は、原子の項目ではありません。

+0

こんにちは、ありがとうございました。私はあなたが言ったように、 'sexo $ Sexo'と関数が正しく動作するように使います。どうもありがとう。マウロ –

関連する問題