【问题标题】:Loop through list programatically以编程方式循环列表
【发布时间】:2020-09-26 03:57:21
【问题描述】:

我在 R 中有一个列表,我想遍历所有元素。

这是对象的结构:

> str(AAPL.OPT[c])
List of 1
 $ jun.12.2020:List of 2
  ..$ calls:'data.frame':   52 obs. of  7 variables:
  .. ..$ Strike: num [1:52] 180 185 200 210 240 ...
  .. ..$ Last  : num [1:52] 123 118 131 120 85 ...
  .. ..$ Chg   : num [1:52] 0 0 7.61 9.48 0 ...
  .. ..$ Bid   : num [1:52] 149 144 129 119 89 ...
  .. ..$ Ask   : num [1:52] 153.3 148.5 133.5 123.7 93.5 ...
  .. ..$ Vol   : int [1:52] NA 15 16 2 1 1 3 36 1 2 ...
  .. ..$ OI    : int [1:52] 0 15 25 4 50 3 4 36 6 10 ...
  ..$ puts :'data.frame':   56 obs. of  7 variables:
  .. ..$ Strike: num [1:56] 150 165 170 180 185 190 195 200 205 210 ...
  .. ..$ Last  : num [1:56] 0.05 0.02 0.14 0.05 0.03 0.02 0.01 0.02 0.01 0.01 ...
  .. ..$ Chg   : num [1:56] 0 0 0 0 0 0 0 0 0 0 ...
  .. ..$ Bid   : num [1:56] NA 0 0 0 0 0 0 0 0 0 ...
  .. ..$ Ask   : num [1:56] 2.13 0.11 0.11 1.8 1.87 0.01 1.88 0.5 1.88 2.13 ...
  .. ..$ Vol   : int [1:56] NA 1 1 2 1 16 1 17 1 21 ...
  .. ..$ OI    : int [1:56] 1 10 7 9 76 201 113 314 92 264 ...

我无法以编程方式访问对象的下一级(通过索引值)

我想做这样的事情:

AAPL.OPT[c][1]

而不是这个

AAPL.OPT[c]$jun.12.2020

AAPL.OPT[c]的样本数据

$`jun.12.2020`$`calls`
                    Strike   Last        Chg    Bid    Ask   Vol   OI
AAPL200612C00180000  180.0 123.29 0.00000000 149.00 153.35    NA    0
AAPL200612C00185000  185.0 117.60 0.00000000 144.00 148.50    15   15
AAPL200612C00200000  200.0 131.15 7.60999300 129.00 133.50    16   25
AAPL200612C00210000  210.0 119.95 9.47999600 119.30 123.65     2    4
....

【问题讨论】:

  • 我觉得AAPL.OPT[[c]][[1]]应该给你AAPL.OPT[c]$jun.12.2020
  • 如果accept the answer回答了您的问题,请点击左侧投票按钮旁边的复选标记。谢谢。

标签: r string loops arraylist


【解决方案1】:

AAPL.OPT[c] 给出一个长度为 1 的列表,其中包含另外两个列表。如果我们使用[[c]],它会给出一个长度为 2 的列表,并且要访问每个数据帧,您可以使用[[ 进一步对它们进行子集化,因此AAPL.OPT[[c]][[1]]AAPL.OPT[[c]][[2]]

【讨论】:

    【解决方案2】:

    我们可以使用

     AAPL.OPT[[c]]$jun.12.2020
    

    【讨论】:

    • 如果您提供解释为什么这是首选解决方案并解释它是如何工作的,它会更有帮助。我们想要教育,而不仅仅是提供代码。
    猜你喜欢
    • 2022-11-04
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多