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_value
或 CI_value
时,收到一串 0。在调用 newdata
或 m1
时,R 告诉我找不到该对象。
我 运行 在 for 循环之外进行可重复性分析,结果一切正常。
有人能帮忙吗?
您的密码是 运行。 sample
中有一条错误消息,我已将其更改为
sample(unique(Data$ID), 4)
。然后它运行。您可能也可以像 sample(unique(Data$ID), 16, replace = TRUE)
这样添加替换,这也有效。我还减少了 rboot
和 npermut
.
中的数字
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
我有一组个人在不同温度下反复执行的行为的数据集,例如:
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_value
或 CI_value
时,收到一串 0。在调用 newdata
或 m1
时,R 告诉我找不到该对象。
我 运行 在 for 循环之外进行可重复性分析,结果一切正常。
有人能帮忙吗?
您的密码是 运行。 sample
中有一条错误消息,我已将其更改为
sample(unique(Data$ID), 4)
。然后它运行。您可能也可以像 sample(unique(Data$ID), 16, replace = TRUE)
这样添加替换,这也有效。我还减少了 rboot
和 npermut
.
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