【问题标题】:How can I select multiple elements from the nth vector in a list?如何从列表中的第 n 个向量中选择多个元素?
【发布时间】:2021-07-23 18:26:34
【问题描述】:
我正在尝试接收一个字符向量,对其进行一些操作,然后只提取符合特定条件的元素。
c("a", "b", "b") %>% list(., which(.=="b")) %>% {.[[1]][[.[[2 ]]]]}
列表由作为第一个元素的字符向量和作为第二个元素的我要提取的元素的索引向量组成。但是,当我尝试在最后一步中使用列表子集时,我得到了错误
.[[1]][[.[[2]]]] 中的错误:尝试选择多个元素
在向量索引中
我怎样才能得到想要的输出:
c("b", "b")
【问题讨论】:
标签:
r
list
vector
pipe
subset
【解决方案1】:
c("a", "b", "b") %>% list(., which(.=="b")) %>% {.[[1]][ .[[2]] ]}
# [1] "b" "b"
不过,我更喜欢
> x <- c('a', 'b', 'b')
> x[which(x == 'b')]
[1] "b" "b"
通过链接做所有事情看起来很花哨,但可能会牺牲可读性和简单性。