Как извлечь первое наблюдение, удовлетворяющее условию в списке матрицы? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть список из 100 матриц из симуляции. Каждая матрица 100х3. Мне нужно сгенерировать новую матрицу, содержащую первое наблюдение, которое удовлетворяет матрице [, 2]> 9 в каждой матрице из списка.

Я сделал нечто подобное (сгенерировал матрицу, содержащую первое наблюдение за матрицей в списке) используя следующий код.

oferta_1=do.call(rbind,lapply(matrices, head, 1)) #where matrices is a list of 100 matrix 100x3

Как я могу сделать то же самое, но с условием «первое наблюдение, которое удовлетворяет матрице [, 2]> 9»?

Спасибо за помощь !!

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

do.call (rbind, lapply (матрицы, функция (x) x [which.max (x [, 2]> 9),]))

0 голосов
/ 25 апреля 2020

Вы можете попробовать:

oferta_1 <- do.call(rbind,lapply(matrices, function(x) x[which.max(x[,2] > 9), ]))

Или, возможно, безопаснее:

oferta_1 <- do.call(rbind, lapply(matrices, function(x) x[which(x[,2] > 9)[1], ]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...