[英]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.