如何解决带有索引向量的子集列表
给定向量foo
,如何在其中bar
的索引匹配bar
的地方对列表foo
进行子集化?
bar
[[1]]
[1] "eney" "e e" "sonalisada" "ahorro" "sio" "a ene" "a" "ra" "m" "ahorro" "" "d" "cre" "genericos"
[15] "atención" "calidad" "servicio" "ine" "iuibue tes" "yrroa" "su salud" "ofertas" "mvil ares" "u"
foo
[1] 8 15 17 20 22
输出应类似于
[8] "ra" [15] "atención" [17] "servicio" [20] "yrroa" [22] "ofertas"
以下方法无效,正确的方法是什么?
which(bar[[1]] == foo)
数据:
dput(foo)
c(8L,15L,17L,20L,22L)
dput(bar)
list(c("eney","e e","sonalisada","ahorro","sio","a ene","a","ra","m","","d","cre","genericos","atención","calidad","servicio","ine","iuibue tes","yrroa","su salud","ofertas","mvil ares","u"))
解决方法
bar
是一个列表,如果只有长度1的列表,则可以执行以下操作:
bar[[1]][foo]
#[1] "ra" "atención" "servicio" "yrroa" "ofertas"
或
unlist(bar)[foo]
如果列表的长度大于1,并且您希望从每个列表中获取foo
个值,则可以使用lapply
lapply(bar,`[`,foo)
#Or
#sapply(bar,foo)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。