用ade4进行R中的判别分析

用ade4进行R中的判别分析,r,R,我正在尝试进行判别分析,以确定区分不同人群和季节的变量。我有5个估计的连续变量,我用它们来确定这些种群和季节之间的间隔 我的因素变量是季节和地点。我的连续变量是calcNDVI、meansdvi、maxNDVI、minNDVI、cvNDVI、diffNDVIvals head(df) X x y date dx dy dist dt R2n abs.angle 3 6677 15.380 52.210 201

我正在尝试进行判别分析,以确定区分不同人群和季节的变量。我有5个估计的连续变量,我用它们来确定这些种群和季节之间的间隔

我的因素变量是季节和地点。我的连续变量是calcNDVI、meansdvi、maxNDVI、minNDVI、cvNDVI、diffNDVIvals

head(df)

     X      x      y       date     dx     dy      dist    dt       R2n abs.angle
3 6677 15.380 52.210 2010-08-12  1.960 -5.900 6.2170411 86400  16.95890 -1.250063
4 6678 17.340 46.310 2010-08-13 -3.300 -0.900 3.4205263 86400 105.41690 -2.875341
5 6679 14.040 45.410 2010-08-14 -1.980 -0.055 1.9807637 86400 106.77890 -3.113822
6 6680 12.060 45.355 2010-08-15 -0.495  0.675 0.8370484 86400 108.54852  2.203545
7 6681 11.565 46.030 2010-08-16 -0.360  0.105 0.3750000 86400  96.40842  2.857799
8 6682 11.205 46.135 2010-08-17 -0.245 -0.485 0.5433691 86400  95.70065 -2.038559

    rel.angle           id        burst         SITE COUNTRY year month     newDate
3 -0.02783079 21333_A31271 21333_A31271 SOUTH.SWEDEN  SWEDEN 2010     8 X2010.08.12
4 -1.62527754 21333_A31271 21333_A31271 SOUTH.SWEDEN  SWEDEN 2010     8 X2010.08.13
5 -0.23848141 21333_A31271 21333_A31271 SOUTH.SWEDEN  SWEDEN 2010     8 X2010.08.14
6 -0.96581813 21333_A31271 21333_A31271 SOUTH.SWEDEN  SWEDEN 2010     8 X2010.08.15
7  0.65425338 21333_A31271 21333_A31271 SOUTH.SWEDEN  SWEDEN 2010     8 X2010.08.16
8  1.38682762 21333_A31271 21333_A31271 SOUTH.SWEDEN  SWEDEN 2010     8 X2010.08.17

   calcNDVI meanNDVI maxNDVI minNDVI   cvNDVI diffNDVIvals yDay    seas
3 7542.487 6296.268    8399     978 20.82924         7421  224 Aug-Sep
4 5018.169 5906.929    7908    3181 22.97476         4727  225 Aug-Sep
5 7513.909 6390.036    8172    3803 22.54474         4369  226 Aug-Sep
6 5763.429 4564.911    7120    2456 25.60007         4664  227 Aug-Sep
7 6161.736 6115.429    8052    1217 25.97495         6835  228 Aug-Sep
8 7995.656 6207.036    7852    2191 20.11494         5661  229 Aug-Sep
据我所知,我的变量格式正确,即数字和因子。 现在,当我使用ade4软件包运行DA时,我得到了一个错误,我不确定这意味着什么:

df.pca=dudi.pca(df[,19:24],scan=F)

df.dis=discrimin(df.pca,interaction(df$SITE,df$seas),scan=F)

Error in if (any(row.w < 0)) stop("row weight < 0") : 
  missing value where TRUE/FALSE needed
df.pca=dudi.pca(df[,19:24],scan=F)
df.dis=discrimin(df.pca,交互作用(df$SITE,df$seas),scan=F)
if(任何(行w<0))停止时出错(“行重量<0”):
缺少需要TRUE/FALSE的值
首先,我认为这可能是因为NAs,但事实并非如此。
有什么想法吗?

我用
mtcars
复制了错误,因为您没有提供
dput
输出,并且从剪贴板粘贴不起作用:

> df = mtcars
> df.pca = dudi.pca(df,scannf=F)
> df.disc = discrimin(dudi=df.pca,interaction(df$carb,df$cyl),scan=F)
给出:

Error in if (any(row.w < 0)) stop("row weight < 0") : 
  missing value where TRUE/FALSE needed

不返回任何错误

太棒了!谢谢贝尔纳多。@navindersingh,很高兴能帮上忙!只是关于使用
Stackoverflow
的提示,但是如果您的问题已经得到了回答,请确保接受回答以供进一步参考。
df.disc = discrimin(dudi=df.pca,fac=factor(interaction(df$carb,df$cyl)),scan=F)