Как получить элементы из списка, который возвращается из sapply - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть список, который содержит различные значения, которые представляют возникновение события.Например, предположим, что список 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 голосов
/ 25 февраля 2019

Учитывая этот список

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

, вы можете сделать

unlist(l[l > 10])

, который дает этот результат

X2 X4 
11 13 
0 голосов
/ 25 февраля 2019

Самым простым решением для этого является удаление which() -функции и просто индексирование по sapply() -функции.

Допустим, вы создали свой фрейм данных следующим образом:

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

Чтобы получить желаемую информацию, теперь вы можете индексировать ([]) с помощью sapply(), а затем удалять из списка с помощью функции unlist() для создания ожидаемого результата:

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

Хорошоудачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...