繁体   English   中英

嵌套列表r中的子集

[英]subsetting in nested list r

我有以下清单:

mylist<-list(c("25","0"),c("50","1"),c("100","2"))

我想一次提取列表中每个元素的第一个元素。 那是

c(mylist[[1]][1],mylist[[2]][1],mylist[[3]][1])

我尝试了以下但没有成功:

mylist[[]][1]; mylist[[.]][1]; mylist[1:3][1]

我感谢任何有效执行此操作的建议

另一个lapply解决方案:

lapply(mylist,"[", 1)
 [[1]] [1] "25" [[2]] [1] "50" [[3]] [1] "100" 

使用purrr我们还可以执行以下操作:

purrr::map(mylist, ~ .x[1])
 [[1]] [1] "25" [[2]] [1] "50" [[3]] [1] "100" 

但是, lapply应该更快。

如果希望将它们作为原子矢量,则可以使用:

mylist <- list(c("25","0"),c("50","1"),c("100","2"))

sapply(mylist, function(v) v[1])
## [1] "25"  "50"  "100"

或获取它们作为列表:

lapply(mylist, function(v) v[1])
## [[1]]
## [1] "25"
## [[2]]
## [1] "50"
## [[3]]
## [1] "100"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM