web-dev-qa-db-ja.com

RDA、colMeans(x、na.rm = TRUE)のエラー:データが数値の場合、「x」は数値でなければなりませんか?

ビーガンを使用してRでrdaを実行したい。

私のコードは次のようになります:

species<- read.delim("springspecies1.txt", header=T)
envdata<- read.delim("springenv1.txt", header=T)

RDA <- rda(species~Temperature + Salinity + O2 + Phosphate + Nitrate + Silica, envdata, scale=T, na.action=na.omit)

そして私はエラーメッセージを受け取ります:

Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric

私が私のデータをチェックするとき、私は得ます:

sapply(species, mode)
      Station          Year         Month     S.marinoi      C.tripos 
    "numeric"     "numeric"     "numeric"     "numeric"     "numeric" 
      P.alata     P.seriata    R.setigera    C.pelagica D.confervacea 
    "numeric"     "numeric"     "numeric"     "numeric"     "numeric" 
  C.decipiens    P.farcimen       C.furca 
    "numeric"     "numeric"     "numeric"

データセットにNAまたは空白がありません。しかし、種のデータセットが問題のようです。種を使用して新しいデータセットをコンパイルしましたが、同じ問題が再び発生します。何か案は?

14
user3420443

「モード」を使用する代わりに、「クラス」でテストする必要があります。おそらく因子列があります。これらは数値モードですが、「is.numeric」でFALSEをテストします。

14
42-