如何从sapply返回的列表中获取元素

时间:2019-02-25 12:30:50

标签: r

我有一个列表,其中包含代表事件发生的不同值。例如,假设列表occValsList如下:

X1=4
X2=11
X3=7
X4=13
X5=2

我只想获取大于10的值。为此,我执行了以下操作:

which(sapply(occValsList, function(y) y > 10))

但这将返回元素的索引而不是值:

X2 X4
2  4

我要返回的是:

X2 X4
11 13

我该怎么做?

2 个答案:

答案 0 :(得分:3)

提供此列表

l <- list(
  X1 = 4,
  X2 = 11,
  X3 = 7,
  X4 = 13,
  X5 = 2
)

你可以做

unlist(l[l > 10])

给出此结果

X2 X4 
11 13 

答案 1 :(得分:1)

最简单的解决方案是删除which()函数,而仅通过sapply()函数进行索引。

假设您是按照以下方式创建数据框的:

occValsList <- list(X1 = 4, X2 = 11, X3 = 7, X4 = 13, X5 = 2)

要检索所需的信息,您现在可以在[]的帮助下建立索引(sapply(),然后通过使用unlist()函数创建预期的输出来取消列出:

unlist(occValsList[sapply(occValsList, function(y) y > 10)])

祝你好运!