数据[[grp [i]]]中的错误:下标超出范围

时间:2018-08-19 10:43:17

标签: r statistics

我正在尝试使用软件包bwtrim中的WRS2函数进行方差分析,但它返回以下错误。

bwtrim(formula = Sumarea ~ Snumber * Day, id = id, data = CO2)
  

数据[[grp [i]]]中的错误:下标超出范围

据我从该网站的其他问题(例如Error in `[<-`(`*tmp*`, , subscript out of bounds subscript out of bounds)中了解到的信息,我试图将其称为“不存在”列。但是,我键入的每一列都存在于数据库中。

> head(CO2)
    Sname Snumber Day Replica Diff Area Sumarea id
1 H4.8AxB       1   0       1    0    0       0  1
2 H4.8AxB       1   0       2    0    0       0  2
3 H4.8AxB       1   0       3    0    0       0  3
4 H4.8AxB       1   0       4    0    0       0  4
5    S141       2   0       1    0    0       0  5
6    S141       2   0       2    0    0       0  6
> tail(CO2)
       Sname Snumber Day Replica Diff  Area Sumarea  id
511 II-1Q61L      14  28       3  400 12530   34505 511
512 II-1Q61L      14  28       4    0     0   40348 512
513    Straw      15  28       1   20   140     790 513
514    Straw      15  28       2  120   875    7435 514
515    Straw      15  28       3  130   700    7925 515
516    Straw      15  28       4  130  1050    8935 516

我还尝试过使用同一软件包中的sppbb,返回不同的错误。

sppbb(formula = Sumarea ~ Snumber * Day, id, CO2, est = "onestep", nboot = 500)
  

xmat [,k] <-x [[kv]]中的错误:         要替换的项目数不是替换长度的倍数

我最后一次尝试是使用mranova函数来分析数据库的一个子集。

c1 <- subset(CO2, subset = Snumber == "1")
  

data.frame(y,组,块)中的错误:找不到对象'Sumarea'

该列确实存在于我的数据库中。

 Sname Snumber Day Replica Diff Area Sumarea  id
1   H4.8AxB       1   0       1    0    0       0   1
2   H4.8AxB       1   0       2    0    0       0   2
3   H4.8AxB       1   0       3    0    0       0   3
4   H4.8AxB       1   0       4    0    0       0   4
61  H4.8AxB       1   3       1 1210 1815    1815  61
62  H4.8AxB       1   3       2 2150 3225    3225  62
63  H4.8AxB       1   3       3 1600 2400    2400  63
64  H4.8AxB       1   3       4 1910 2865    2865  64
117 H4.8AxB       1   4       1 6280 3745    5560 117
118 H4.8AxB       1   4       2 6990 4570    7795 118
119 H4.8AxB       1   4       3 6440 4020    6420 119
120 H4.8AxB       1   4       4 6150 4030    6895 120
177 H4.8AxB       1   5       1 3820 5050   10610 177
178 H4.8AxB       1   5       2 5420 6205   14000 178
179 H4.8AxB       1   5       3 4780 5610   12030 179
180 H4.8AxB       1   5       4 5310 5730   12625 180
237 H4.8AxB       1   6       1 2320 3070   13680 237
238 H4.8AxB       1   6       2 2700 4060   18060 238
239 H4.8AxB       1   6       3 1900 3340   15370 239
240 H4.8AxB       1   6       4 2520 3915   16540 240
297 H4.8AxB       1   7       1 1240 1780   15460 297
298 H4.8AxB       1   7       2 1870 2285   20345 298
299 H4.8AxB       1   7       3 1350 1625   16995 299
300 H4.8AxB       1   7       4 1480 2000   18540 300
361 H4.8AxB       1  10       1  460 2550   18010 361
362 H4.8AxB       1  10       2  910 4170   24515 362
363 H4.8AxB       1  10       3  810 3240   20235 363
364 H4.8AxB       1  10       4  770 3375   21915 364
425 H4.8AxB       1  14       1    0    0   27975 425
426 H4.8AxB       1  14       2  820 3460   27975 426
427 H4.8AxB       1  14       3  580 2780   23015 427
428 H4.8AxB       1  14       4  530 2600   24515 428

我将非常感谢为我提供总体统计分析解决方案的人,尤其是让bwtrim函数正常工作的人。 我认为这种混合模型是我必须用于数据的模型(对象内部变量=副本,主体间=应变和时间,我不知道该在哪里放置)

1 个答案:

答案 0 :(得分:0)

对我来说,解决方案是删除我的中间因子中未使用的因子水平。这些是子集化的结果。

那么你可以检查一下你的数据是什么样子的:

str(data)

对于以下因素,您可以通过比较来检查您是否有未使用的级别:

nlevels(data$factorcolumn)

length(unique(data$factorcolumn))

如果它们不同,您可以使用

删除未使用的级别

data$factorcolumn <- droplevels(data$factorcolumn)

相关问题