R: Как я могу проверить, все ли значения безымянного списка списков ИСТИНА? - PullRequest
1 голос
/ 09 апреля 2020

мой список ll

ll <- list(list(c("loss", "acceptor", "118595910-118595911", "Medium", 
"13.196532"), c("gain", "acceptor", "118595911-118595912", "Medium", 
"9.953203")), list(c("loss", "donor", "976214-976215", "Medium", "7.866191")),
list(c("loss", "acceptor", "112145998-112145999","Medium", "8.728467"),
c("gain", "acceptor", "112145999-112146000", "Medium", "2.721802")),
list(c("loss", "acceptor", "55871763-55871764", "Medium", "6.049719"),
c("gain", "acceptor", "55871764-55871765", "Medium", "5.105557")))

Я хочу проверить, все ли 5-ые numeric элементы (в списке это character) все больше, чем 4, что означает I нужно только одно логическое значение, возвращаемое списком, здесь в этом случае будет TRUE, TRUE, FALSE, TRUE.

Мне известно о найденных потоках здесь и здесь однако мой список не назван, и я не уверен, как мне получить доступ к каждому подмножеству моего списка. Я могу развернуть их, но это означает, что я получу больше логических значений, чем количество списков:

matrix(unlist(ll),ncol=5,byrow=TRUE)
     [,1]   [,2]       [,3]                  [,4]     [,5]       
[1,] "loss" "acceptor" "118595910-118595911" "Medium" "13.196532"
[2,] "gain" "acceptor" "118595911-118595912" "Medium" "9.953203" 
[3,] "loss" "donor"    "976214-976215"       "Medium" "7.866191" 
[4,] "loss" "acceptor" "112145998-112145999" "Medium" "8.728467" 
[5,] "gain" "acceptor" "112145999-112146000" "Medium" "2.721802" 
[6,] "loss" "acceptor" "55871763-55871764"   "Medium" "6.049719" 
[7,] "gain" "acceptor" "55871764-55871765"   "Medium" "5.105557"

Я знаю, что должен использовать any, sapply, as.numeric, но я действительно не знать, как их собрать ...

any( sapply(ll_test,function(x) as.numeric(x[5]) > 4) )

Заранее спасибо.

1 Ответ

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

Вот вложенный sapply:

sapply(ll,function(x) all(sapply(x,function(y) as.numeric(y[5]) > 4 )))
[1]  TRUE  TRUE FALSE  TRUE

По сути, вы используете sapply, чтобы применить sapply к каждому элементу внутреннего списка к каждому элементу внешнего списка. Confused

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