微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从列表中的第 n 个向量中选择多个元素?

如何解决如何从列表中的第 n 个向量中选择多个元素?

我正在尝试接收一个字符向量,对其进行一些操作,然后仅提取符合特定条件的元素。

c("a","b","b") %>% list(.,which(.=="b")) %>% {.[[1]][[.[[2] ]]]]}

该列表由作为第一个元素的字符向量和作为第二个元素的索引向量(我想要提取的元素)组成。但是,当我在最后一步尝试使用列表子集时,出现错误

.[[1]][[.[[2]]]] 中的错误:尝试选择多个元素 在向量索引中

如何获得所需的输出

c("b","b")

解决方法

c("a","b","b") %>% list(.,which(.=="b")) %>% {.[[1]][ .[[2]] ]}
# [1] "b" "b"

不过,我更喜欢

> x <- c('a','b','b')
> x[which(x == 'b')]
[1] "b" "b"

通过链接来做所有事情看起来很花哨,但可能会牺牲可读性和简单性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。