【问题标题】:Nest data inside loop在循环内嵌套数据
【发布时间】:2021-06-01 22:55:00
【问题描述】:

我目前遇到一个问题,我正在尝试将模拟数据嵌套在包含所有 250 个模拟的小标题内以实现有效边界。 tibble 将有 1 列名为“sim”,表示模拟的数量,即该列中的行从 1:250 开始。另一列应包含嵌套的模拟数据,每个模拟都是一个 3x123 的小标题。 (真的希望这是有道理的)。

我已尝试复制问题,这样您就不需要所有以前的代码和数据来查看问题。问题是嵌套数据保存为列表:

library(tidyverse)

counter = 0

table <- tibble(sim = 1:250, obs = NA)

for(i in (1:250)){
  counter = counter + 1
  tibble <- tibble(a = NA, b = 1:113, c = 2, d = 3)
  tibble$a <- counter
  nested_tibble <- tibble %>% nest(data = -a) %>% select(-a)
  table$obs[i] <- nested_tibble
}

在这个简化的可重现示例中,tibble 中的值是相同的。而在我正在处理的任务中,小标题包含有效边界的值。 tibble 中的变量“a”对应于模拟编号,这是我用来嵌套有效边界的变量。之后我希望删除这个变量 a,并将嵌套表插入当前为 NA 的相应 'obs' 字段中。

我真的希望这是有道理的。我对 R 和编码还是很陌生。如果您需要任何其他文件,请告诉我。

【问题讨论】:

    标签: r loops nested data-science finance


    【解决方案1】:

    您的nested_tibble 是一个包含小标题的列表。要访问列表中的小标题,可以使用double bracket notation:nested_tibble[[1]]。所以要得到你想要的结果,你可以改变你的循环如下:

    counter = 0
    
    table <- tibble(sim = 1:250, obs = NA)
    
    for(i in (1:250)){
      counter = counter + 1
      tibble <- tibble(a = NA, b = 1:113, c = 2, d = 3)
      tibble$a <- counter
      nested_tibble <- tibble %>% nest(data = -a) %>% select(-a)
      table$obs[i] <- nested_tibble[[1]]
    }
    

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 2017-03-26
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      相关资源
      最近更新 更多