首页 > 解决方案 > 测试 [[1:3]] 中的错误:递归索引在级别 2 失败

问题描述

我是 R 的新手,并将列表子集如下:

test<-list(c(10,15,20,25),c(11,12,13,14),c(21,22,23,24))

test

[[1]]
[1] 10 15 20 25

[[2]]
[1] 11 12 13 14

[[3]]
[1] 21 22 23 24

现在我正在这样做

test<-test[[1:3]][1]

它显示以下错误

测试 [[1:3]] 中的错误:递归索引在级别 2 失败

标签: rlist

解决方案


要从每个列表中选择多个值,您可以使用sapply/ lapply。例如,要从列表中选择前 3 个值,您可以这样做

lapply(test, `[`, 1:3)

#[[1]]
#[1] 10 15 20

#[[2]]
#[1] 11 12 13

#[[3]]
#[1] 21 22 23

或者,sapply您将获得相同的结果,但采用矩阵形式,其中每列代表列表中的值。

sapply(test, `[`, 1:3)
#     [,1] [,2] [,3]
#[1,]   10   11   21
#[2,]   15   12   22
#[3,]   20   13   23

推荐阅读