获取列表的子列表

Ann*_*lee 4 statistics r

我有一个围绕3000元素长的向量。我用 提取了向量中的特定点which(...)。现在我想拥有-120 before这一点和+120 after这一点。

我的清单是这样的:

> testList$Date

     [1] "01.01.2002" "02.01.2002" "03.01.2002" "04.01.2002" "07.01.2002"
       [6] "08.01.2002" "09.01.2002" "10.01.2002" "11.01.2002" "14.01.2002"
      [11] "15.01.2002" "16.01.2002" "17.01.2002" "18.01.2002" "21.01.2002"
      [16] "22.01.2002" "23.01.2002" "24.01.2002" "25.01.2002" "28.01.2002"
      [21] "29.01.2002" "30.01.2002" "31.01.2002" "01.02.2002" "04.02.2002"
      [26] "05.02.2002" "06.02.2002" "07.02.2002" "08.02.2002" "11.02.2002"
      [31] "12.02.2002" "13.02.2002" "14.02.2002" "15.02.2002" "18.02.2002"ect....
Run Code Online (Sandbox Code Playgroud)

我可以做一个for-loop迭代列表并将其保存为子列表。但是,我认为这不是很有效。我如何在 R 中实现它?

我很感激你的回答!

更新 使用时lapply我得到:

> 120BeforeSublist <- lapply(event, function(x) c(x-120, x))
> (120BeforeSublist)
[[1]]
[1] 1875 1995
Run Code Online (Sandbox Code Playgroud)

但是我想保存子列表-120 before and +120 after

vae*_*hen 5

这是否在原则上描述了您的问题,以及一个通用的解决方案:

x <- 1:20
pos <- which( x == 10 )
end <- 2
len <- 5
x_bef <- x[ ( pos - len - end ) : ( pos - end ) ]
x_aft <- x[ (pos + end ) : ( pos + len + end ) ] 

x_bef
[1] 3 4 5 6 7 8
x_aft
[1] 12 13 14 15 16 17
Run Code Online (Sandbox Code Playgroud)