我有以下列表:
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]
我感谢任何有效执行此操作的建议
答案 0 :(得分:1)
如果您希望它们作为原子矢量,您可以使用:
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"
答案 1 :(得分: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
应该更快。