当前位置: 首页 > 知识库问答 >
问题:

选择嵌套列表的第一个元素

酆恩
2023-03-14

假设我有一个这样的列表:

x = list(list(1,2), list(3,4), list(5,6))

我想要一个只包含嵌套列表的第一个元素的列表。我可以通过这样返回另一个列表来做到这一点

x1 = lapply(x, function(l) l[[1]])

这个有捷径符号吗?

共有3个答案

关苗宣
2023-03-14

对于示例列表,您只需执行以下操作:

unlist(x)[ c(TRUE,FALSE) ]

但这取决于每个子列表正好有2个元素。

如果有不同数量的元素,则可以先执行sapply来计算长度,然后计算相应的第一个元素位置(请参见cumsum),然后从未列出的列表中选择这些值。但到那时,公认的答案可能要简单得多。

如果所有子列表的长度相同(但可能不同于2),那么您可以执行以下操作:

do.call( rbind, x)[,1]

或者其他一些对普通物体的投射。但我怀疑这是否会像lappy方法那样有效。

朱宏爽
2023-03-14

另一种可能性是使用nicepurrr库:

library(purrr)
map(x, 1)
晋涛
2023-03-14

这不是什么捷径,但你可以做到:

lapply(x, `[[`, 1)
# [[1]]
# [1] 1
#
# [[2]]
# [1] 3
#
# [[3]]
# [1] 5
 类似资料:
  • 问题内容: 不幸的是,我有一个字段列,其中包含诸如 4 12,3 8,5,6,7 我将编写一个SELECT语句,其结果将是: 4 12 8 由于MySQL不提供“拆分”功能,我如何在实践中做到这一点? 问题答案: 使用MySQL的功能: 但是,将列表保留在以定界符分隔的字符串中通常是对像MySQL这样的关系数据库管理系统的低效使用:通常最好通过将这样的列表保留在成对的单独表中来规范化数据结构。

  • 问题内容: 我创建了一个客户c#DropDownList控件,可以将其内容呈现为optgroup(不是从头开始,我编辑了一些在Internet上找到的代码,尽管我确切地了解了它的作用),并且工作正常。 但是,我现在遇到一种情况,我需要在下拉菜单中有两个缩进级别,即 但是,在上面的示例代码段中,它呈现的缩进量与相同。 有没有一种方法可以产生我想要的嵌套optgroup行为? 问题答案: 好的,如果有

  • 问题内容: 我有两个选择: 如果我首先选择“水果”,该如何使用jQuery?第二个选择仅向我显示水果- 香蕉,苹果,橙子。如果我在第一个选择中选择“鸟”,则第二个选择仅显示“鸟”-老鹰,鹰。等等… 我试图用这段jQuery代码来做到这一点: 不幸的是,它几乎删除了所有内容,而且我不知道如何恢复一些选择。我也阅读了一些有关克隆的内容,但是在这种情况下我不知道如何使用它。 问题答案: $(“#sele

  • 下面是一个函数,它将获得一个嵌套的ArrayList、index,并返回每个子列表的第n个元素。 例如。对于,,函数将返回 我已经找到了一个可以打印出来的版本: 如何将结果汇总成清单?

  • 问题内容: 如何选择CSS中的最后一个元素和最深的元素? 有没有办法改善此CSS代码? 您为深树提出了什么解决方案?(〜15-25)。 我避免使用javascript。但是欢迎使用SASS解决方案(也许使用@for?) 问题答案: 如果我正确理解了您的问题,则希望将s中的最后一个标记作为目标,其中s中的嵌套级别数是不可预测的。 您需要一个选择器,该选择器以包含块中的“最后和最深元素”为目标,而该块

  • 问题内容: 我有一堆带有类名的元素,但是我似乎无法使用以下CSS规则选择第一个元素: 该选择器有什么问题,我该如何纠正? 多亏了这些评论,我才知道该元素必须是其父元素的第一个子元素才能被选中,而事实并非如此。我具有以下结构,并且该规则失败,如注释中所述: 我该如何针对上课的第一个孩子? 问题答案: 这是作者误解工作方式的最著名例子之一。在CSS2介绍,该伪类表示其父的第一个孩子。而已。有一个非常普