gpt4 book ai didi

r - 根据奇数/偶数索引将列表拆分为两个列表

转载 作者:行者123 更新时间:2023-12-03 23:53:04 25 4
gpt4 key购买 nike

我有一个表格列表:

dat[[1]], dat[[2]], ..., dat[[n]]

我想获得两个单独的列表,一个包含具有奇数索引的数据,另一个包含偶数索引,即:
new_dat_odd <- dat[[1]], dat[[3]], dat[[5]], ...
new_dat_even <- dat[[2]], dat[[4]], dat[[6]], ...

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

谢谢你的任何建议。

最佳答案

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

s <- split(L, 1:2)

1a) 以上适用于列表是偶数还是奇数长度,但根据评论,如果是奇数,则会发出警告。以下修改给出了相同的答案,但没有给出警告:
s <- split(L, rep(1:2, length = length(L)))

在上面的任何一个中 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

2) 这是另一种方式:
is.odd <- rep(c(TRUE, FALSE), length = length(L))
list(odd = L[is.odd], even = L[!is.odd])

更新 添加了 1a 和 2。

关于r - 根据奇数/偶数索引将列表拆分为两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24407440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com