For 循环列表不存储值

For Loop List Not Storing Values

我有一组个人在不同温度下反复执行的行为的数据集,例如:

  ID          Test   Behaviour     Temperature
 A12.4.2      ONE     8.64            4
 A12.4.2      TWO     7.63            5
 A6.3.3       ONE     1.81            3
 A6.3.3       TWO     2.47            9
 B12.4.1      ONE     1.17            12
 B12.4.1      TWO     3.96            2
 E9.4.2       ONE     13.04           13
 E9.4.2       TWO     9.51            6
 ...

我使用以下代码对该数据集进行随机子集化,然后对子集进行 运行 重复性分析,最后从重复性分析中生成 R 值和 CI 值。

P<-10000

R_value<-numeric(length=P)
CI_value<-numeric(length=P)
for(i in 1:P){
  newdata<-Data[Data$ID %in% sample(unique(Data$ID), 16), ]
  m1<-rptR::rpt(((Behaviour))~Temperature+(1|ID),grname="ID",data=newdata,datatype="Gaussian",nboot=1000,npermut=1000)
  R_value[i] <- m1$R
  CI_value[i] <- m1$CI
}

不幸的是,这似乎不起作用。当我调用 R_valueCI_value 时,收到一串 0。在调用 newdatam1 时,R 告诉我找不到该对象。

我 运行 在 for 循环之外进行可重复性分析,结果一切正常。

有人能帮忙吗?

您的密码是 运行。 sample 中有一条错误消息,我已将其更改为 sample(unique(Data$ID), 4)。然后它运行。您可能也可以像 sample(unique(Data$ID), 16, replace = TRUE) 这样添加替换,这也有效。我还减少了 rbootnpermut.

中的数字
library(rptR)

Data <- read.table(text = "
ID          Test   Behaviour     Temperature
 A12.4.2      ONE     8.64            4
 A12.4.2      TWO     7.63            5
 A6.3.3       ONE     1.81            3
 A6.3.3       TWO     2.47            9
 B12.4.1      ONE     1.17            12
 B12.4.1      TWO     3.96            2
 E9.4.2       ONE     13.04           13
 E9.4.2       TWO     9.51            6
                   ", header =T)


Data

#>        ID Test Behaviour Temperature
#> 1 A12.4.2  ONE      8.64           4
#> 2 A12.4.2  TWO      7.63           5
#> 3  A6.3.3  ONE      1.81           3
#> 4  A6.3.3  TWO      2.47           9
#> 5 B12.4.1  ONE      1.17          12
#> 6 B12.4.1  TWO      3.96           2
#> 7  E9.4.2  ONE     13.04          13
#> 8  E9.4.2  TWO      9.51           6
P<-10
R_value<-numeric(length=P)
CI_value<-numeric(length=P)

for(i in 1:P){
  newdata<-Data[Data$ID %in% sample(unique(Data$ID), 4), ]
  m1<-rptR::rpt(((Behaviour))~Temperature+(1|ID), grname="ID", data=newdata, datatype="Gaussian", nboot=10, npermut=10)
  R_value[i] <- m1$R
  CI_value[i] <- m1$CI
}


R_value
#> [[1]]
#> [1] 0.8324396
#> 
#> [[2]]
#> [1] 0.8324396
#> 
#> [[3]]
#> [1] 0.8324396
#> 
#> [[4]]
#> [1] 0.8324396
#> 
#> [[5]]
#> [1] 0.8324396
#> 
#> [[6]]
#> [1] 0.8324396
#> 
#> [[7]]
#> [1] 0.8324396
#> 
#> [[8]]
#> [1] 0.8324396
#> 
#> [[9]]
#> [1] 0.8324396
#> 
#> [[10]]
#> [1] 0.8324396
CI_value
#>  [1] 0.95 0.95 0.95 0.95 0.95 0.95 0.95 0.95 0.95 0.95