我有一个列表,其中包含代表事件发生的不同值。例如,假设列表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
我该怎么做?
答案 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)])
祝你好运!