RDA,colMeans中的错误(x,na.rm = TRUE):当数据是数字时,'x'必须是数字?

use*_*443 13 r rda vegan

我想使用素食主义者在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)
Run Code Online (Sandbox Code Playgroud)

我收到错误信息:

Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric
Run Code Online (Sandbox Code Playgroud)

当我检查我的数据时,我得到:

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"
Run Code Online (Sandbox Code Playgroud)

我的数据集中没有NA或空格.但似乎物种数据集是问题所在.我用物种编译了一个新的数据集,但我又遇到了同样的问题.有任何想法吗?

42-*_*42- 13

您应该使用'class'进行测试,而不是使用'mode'.你可能有一个因子列.它们是模式数字,但使用'is.numeric'测试为FALSE.