我有以下带有子列表的列表,我想找出每个子列表> 1中的位置,并得出具有相同结构的列表和结果。
L <- list ( list( c ( 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,139 , 1 , 1 ,139 , 1 ,139 ,139 , 1 ,139 ,139 ,139 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1) , c( 1 ,3 ,1 ,1 ,3 ,1 ) , c( 74 ,74 ,1 ,74 ,74 ,74 ,1 ,1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,74 , 1 , 1 ,74 , 1 ,74 ,74 ,1) , c( 7 ,7 ,7 ,1 ,1 ,1, 1, 1, 1, 1, 1 ,1)) , list ( c ( 1 ,1 ,139, 1 ,1 ,139 ,1 ,1 ,139 , 1 , 1 ,139 , 1 , 1 ,139 , 1 , 1 ,139 ,139 , 1 ,139 , 1 , 1 ,139 , 1 , 1 ,139 , 1 , 1 ,139), c( 1 ,1 ,3 ,1 ,1 ,3 ) , c( 1 , 1 ,74 ,74 , 1 ,74 ,1 , 1 ,74 , 1 , 1 ,74 , 1 , 1 ,74 , 1 , 1 ,74 , 1 , 1 ,74 ,74 , 1 ,74) , c( 7, 1, 7, 1, 1, 7, 1, 1, 7, 1, 1, 7 )) , list ( c ( 1 ,128 ,1 ,1 ,128 ,1 ,128 ,128 ,1 ,128 ,128 ,128 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 , 1 ,128, 1) , c( integer(0) ), c( integer(0) ) , c( integer(0) ) , c( integer(0) ) , c( integer(0) )) , list (c( 1 ,1 ,128 ,1 ,1 ,128 ,128 ,1 ,128 ,128 ,1 ,128 ,1 ,1 ,128 ,1 ,1 ,128 ,1 ,1 ,128 ,1 ,1 ,128 ) , c( integer(0) ), c( integer(0) ) , c( integer(0) ) , c( integer(0) ) , c( integer(0) )))
我尝试在函数中嵌入函数并使用 mapply,如下所示,但出现错误。
fun <- function ( i ) {
ss <- seq ( length ( L [[ i ]] ))
Map ( function ( a , b ) which ( L [[ a ]] [[ b ]] > 1 ) , ss[[ i ]] , MoreArgs = ( a = list ( seq ( length ( L )) )))
}
lapply ( seq ( length ( L )) , fun )
欢迎任何帮助
最佳答案
也许你想要
rapply(L, function(x) which(x>1), how = "list")
关于r - 计算列表子列表中高于特定阈值的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37624821/