Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅选择包含R中有两列的表的列表的元素_R_List - Fatal编程技术网

仅选择包含R中有两列的表的列表的元素

仅选择包含R中有两列的表的列表的元素,r,list,R,List,我有一个包含10000个元素的列表,每个元素包含一个具有不同列数的表,下面显示了一个示例列表(元素较少)。是否有办法只选择额外列表中有两列的元素,但只显示数字而不显示字符(如示例[[1]]]) 预期产出将是: $`1` 41 498 你知道什么解决方案吗?我们可以使用长度创建一个逻辑向量来子集列表,然后循环子集列表和命名,或者将向量转换为向量作为.vector或未列出(如果它是一个data.frame) 如果这些是列表中的data.frame lapply(lst1[sapply(lst1

我有一个包含10000个元素的列表,每个元素包含一个具有不同列数的表,下面显示了一个示例列表(元素较少)。是否有办法只选择额外列表中有两列的元素,但只显示数字而不显示字符(如示例
[[1]]]

预期产出将是:

$`1`

41 498

你知道什么解决方案吗?

我们可以使用
长度
创建一个逻辑向量来子集
列表
,然后循环子集
列表
命名
,或者将
向量转换为
向量
作为.vector
未列出
(如果它是一个data.frame)


如果这些是
列表中的
data.frame

lapply(lst1[sapply(lst1, ncol) == 2], unlist, use.names = FALSE)
数据
lst1这里我使用lappy来找到哪些长度等于2,然后索引

让我成为你的名单

L[lappy(L,长度)==2]
也许你可以试试

  • 子集
    带有
    长度
  • 过滤器
数据

> dput(lst)
list(`1` = c(a = 41, g = 498), `2` = c(c = 40, t = 499, g = 1
), `3` = c(a = 28, c = 36, g = 466, t = 9), `4` = c(t = 539))

您是否有
对象或
数据.frame
或刚刚命名为
列表的向量
元素这是刚刚命名的向量,谢谢您的回答。
lapply(lst1[sapply(lst1, ncol) == 2], unlist, use.names = FALSE)
lst1 <- list(`1` = c(a = 41, g = 498), `2` = c(c = 40, t = 499, g = 1
), `3` = c(a = 28, c = 36, g = 466, t = 9), `4` = c(t = 539))
> subset(lst,lengths(lst)==2)
$`1`
  a   g
 41 498
> Filter(function(x) length(x)==2,lst)
$`1`
  a   g
 41 498
> dput(lst)
list(`1` = c(a = 41, g = 498), `2` = c(c = 40, t = 499, g = 1
), `3` = c(a = 28, c = 36, g = 466, t = 9), `4` = c(t = 539))