在R中对列表向量进行子集筛选

4

假设我有一个列表的向量:

library(tidyverse)

d <- tribble(
  ~x,
  c(10, 20, 64),
  c(22, 11),
  c(5, 9, 99),
  c(55, 67),
  c(76, 65)
)

我该如何对这个向量进行子集操作,使得例如可以得到那些行列表长度大于2的结果?以下是我使用tidyverse尝试但不成功的代码:

filter(d, length(x) > 2)
# A tibble: 5 x 1
  x        
  <list>   
1 <dbl [3]>
2 <dbl [2]>
3 <dbl [3]>
4 <dbl [2]>
5 <dbl [2]>
2个回答

5

由于 'x' 是一个 list,因此长度应为 lengths

library(dplyr)
d %>%
     filter(lengths(x) > 2)

2
您可以使用subset()lengths()函数。
subset(d,lengths(x)>2)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接