首页 > 解决方案 > 总是选择列表中的第一个元素

问题描述

让我们考虑一下列表:

x <- list(c(1), c(1,2), c(2,3,4))

该列表包含三个元素 - 每个位置的向量。我想提取这些向量的第一个元素:

我的原始解决方案

extract_vec <- c()
for (i in seq_len(length(x))) { 
  extract_vec[i] <- x[[i]][1]
}

会完成这项工作,但是我想知道是否必须使用循环来这样做。我尝试了类似的东西,x[[1:3]][1]但它不起作用。

标签: rlistvectorextract

解决方案


这是否有效:

lapply(x, '[', 1)
[[1]]
[1] 1

[[2]]
[1] 1

[[3]]
[1] 2

sapply(x, '[', 1)
[1] 1 1 2
 

推荐阅读