如何解决错误“下标超出范围”

时间:2019-07-02 14:15:49

标签: r polynomials

我对解决错误有疑问:

  

“下标超出范围”。

我正在分析眼动追踪实验的数据。您可以在下面找到示例数据:

Stimulus  Timebin   Language  Percentage on AOI 
1            11        L1         0.80
1            11        L2         0.60
1            12        L1         0.80
1            12        L2         0.50
1            13        L1         0.83
1            13        L2         0.50
...
10           37        L1         0.00
10           37        L2         0.50
10           38        L1         0.70
10           38        L2         0.50
10           39        L1         0.60
10           39        L2         0.70
10           40        L1         0.75
10           40        L2         0.89

...

我想用LanguageTimebin作为自变量,percentage on Area of Interest (AOI)作为因变量来进行增长曲线分析。此外,Stimulus是随机因素。每个刺激和条件我都有40个时区。为了避免潜在的共线性问题,我想创建正交多项式。下面的代码用于创建独立的(正交的)多项式时间项(线性,二次和三次)。

Gaze_1_Poly <- poly((unique(Gaze_1$timebin)), 3)
Gaze_1[,paste("ot", 1:3, sep="")] <- Gaze_1_Poly[Gaze_1$timebin, 1:3]

我总是收到一个错误消息,告诉我有一个超出范围的下标。

  

Gaza_1_Poly [Gaze_1 $ timebin,:
中的错误         下标超出范围

所以我检查了变量的类,我认为这没问题:

   Stimulus     Timebin    Language  percentage on AOI        
"character"   "integer"    "factor"   "numeric"  

我不知道原因。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

请参阅上面的评论。让我知道您是否打算这样做。

library(dplyr)

Gaze_1 %>%
  left_join(data.frame(Timebin = unique(.$Timebin), poly(unique(.$Timebin), degree = 3)),
            by = 'Timebin') %>%
  setNames(c("Stimulus", "Timebin", "Language", "Percentage on AOI", "ot1", "ot2", "ot3"))