【问题标题】:For Loop List Not Storing ValuesFor 循环列表不存储值
【发布时间】:2020-07-14 13:36:16
【问题描述】:

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

  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 循环之外运行可重复性分析,结果一切正常。

谁能帮忙?

【问题讨论】:

  • Data 看起来像什么?此外,这看起来像是几个小时前您的问题的重复......?!
  • 这能回答你的问题吗? Storing multiple results from for loop
  • 嗨 Wimpel,我的问题与几个小时前发布的问题不同,因为我已经尝试了建议给我的代码,虽然它解决了我的一些问题,但我遇到了这个代码的新问题.
  • Lizzie,最好采用循环中的代码,而不是运行循环,设置i &lt;- 1。现在运行每一行代码,看看是否得到newdatam1 的预期结果
  • 嗨,艾伦,按照您的建议,我确实得到了预期的结果。

标签: r for-loop subset repeat


【解决方案1】:

您的代码正在运行。 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2015-08-25
    • 2022-11-20
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多