基于奇数/偶数索引将列表拆分为两个列表

Neo*_*yme 2 r list

我有一份表格清单:

dat[[1]], dat[[2]], ..., dat[[n]]
Run Code Online (Sandbox Code Playgroud)

而我想获得两个单独的列表,一个包含具有奇数索引的数据,另一个包含偶数索引,即:

new_dat_odd <- dat[[1]], dat[[3]], dat[[5]], ...
new_dat_even <- dat[[2]], dat[[4]], dat[[6]], ...
Run Code Online (Sandbox Code Playgroud)

在尝试这样做时,我的主要问题是我找不到如何引用R中列表的索引.

谢谢你的任何建议.

G. *_*eck 7

1)如果L是列表,那么我们可以使用此代码,我们注意到1:2根据需要回收:

s <- split(L, 1:2)
Run Code Online (Sandbox Code Playgroud)

1a)上述工作无论是偶数还是奇数长度,但根据评论,如果奇怪,它会发出警告.以下修改给出了相同的答案,但没有给出警告:

s <- split(L, rep(1:2, length = length(L)))
Run Code Online (Sandbox Code Playgroud)

在任一上述的s[[1]]s[[2]]是两个列表.例如,

> L <- as.list(1:10)
> str(split(L, 1:2))
List of 2
 $ 1:List of 5
  ..$ : int 1
  ..$ : int 3
  ..$ : int 5
  ..$ : int 7
  ..$ : int 9
 $ 2:List of 5
  ..$ : int 2
  ..$ : int 4
  ..$ : int 6
  ..$ : int 8
  ..$ : int 10
Run Code Online (Sandbox Code Playgroud)

2)这是另一种方式:

is.odd <- rep(c(TRUE, FALSE), length = length(L))
list(odd = L[is.odd], even = L[!is.odd])
Run Code Online (Sandbox Code Playgroud)

更新已添加1a和2.