Hello,
I would like to replace my for loop here with the equivalent sapply or lapply to get final_list as it is below. Any ideas?
library(magrittr)
position_list <- c(2,3,4,5,6,7,8,10,11,14,16,17,18,22,24,26,28,32,34,37,41,42,43,44,47,51,53,54,55,59)
final_list <- list() %>% rep("",max(position_list))
for(i in position_list){
final_list[[i]] <- i
}
final_list <- final_list %>% as.list()
final_list
#> [[1]]
#> NULL
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 3
#>
#> [[4]]
#> [1] 4
#>
#> [[5]]
#> [1] 5
#>
#> [[6]]
#> [1] 6
#>
#> [[7]]
#> [1] 7
#>
#> [[8]]
#> [1] 8
#>
#> [[9]]
#> NULL
#>
#> [[10]]
#> [1] 10
#>
#> [[11]]
#> [1] 11
#>
#> [[12]]
#> NULL
#>
#> [[13]]
#> NULL
#>
#> [[14]]
#> [1] 14
#>
#> [[15]]
#> NULL
#>
#> [[16]]
#> [1] 16
#>
#> [[17]]
#> [1] 17
#>
#> [[18]]
#> [1] 18
#>
#> [[19]]
#> NULL
#>
#> [[20]]
#> NULL
#>
#> [[21]]
#> NULL
#>
#> [[22]]
#> [1] 22
#>
#> [[23]]
#> NULL
#>
#> [[24]]
#> [1] 24
#>
#> [[25]]
#> NULL
#>
#> [[26]]
#> [1] 26
#>
#> [[27]]
#> NULL
#>
#> [[28]]
#> [1] 28
#>
#> [[29]]
#> NULL
#>
#> [[30]]
#> NULL
#>
#> [[31]]
#> NULL
#>
#> [[32]]
#> [1] 32
#>
#> [[33]]
#> NULL
#>
#> [[34]]
#> [1] 34
#>
#> [[35]]
#> NULL
#>
#> [[36]]
#> NULL
#>
#> [[37]]
#> [1] 37
#>
#> [[38]]
#> NULL
#>
#> [[39]]
#> NULL
#>
#> [[40]]
#> NULL
#>
#> [[41]]
#> [1] 41
#>
#> [[42]]
#> [1] 42
#>
#> [[43]]
#> [1] 43
#>
#> [[44]]
#> [1] 44
#>
#> [[45]]
#> NULL
#>
#> [[46]]
#> NULL
#>
#> [[47]]
#> [1] 47
#>
#> [[48]]
#> NULL
#>
#> [[49]]
#> NULL
#>
#> [[50]]
#> NULL
#>
#> [[51]]
#> [1] 51
#>
#> [[52]]
#> NULL
#>
#> [[53]]
#> [1] 53
#>
#> [[54]]
#> [1] 54
#>
#> [[55]]
#> [1] 55
#>
#> [[56]]
#> NULL
#>
#> [[57]]
#> NULL
#>
#> [[58]]
#> NULL
#>
#> [[59]]
#> [1] 59
Created on 2021-07-28 by the reprex package (v2.0.0)
ron
2
Not an answer using apply, but how's this?
position_list <- c(2,3,4,5,6,7,8,10,11,14,16,17,18,22,24,26,28,32,34,37,41,42,43,44,47,51,53,54,55,59)
# I think this is a better way to initialise an empty list:
final_list <- vector(mode = 'list', max(position_list))
#...and then this should replace your for-loop
final_list[position_list] <- position_list
final_list
#> [[1]]
#> NULL
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 3
#>
#> [[4]]
#> [1] 4
#>
#> [[5]]
#> [1] 5
#>
#> [[6]]
#> [1] 6
#>
#> [[7]]
#> [1] 7
#>
#> [[8]]
#> [1] 8
#>
#> [[9]]
#> NULL
#>
#> [[10]]
#> [1] 10
#>
#> [[11]]
#> [1] 11
#>
#> [[12]]
#> NULL
#>
#> [[13]]
#> NULL
#>
#> [[14]]
#> [1] 14
#>
#> [[15]]
#> NULL
#>
#> [[16]]
#> [1] 16
#>
#> [[17]]
#> [1] 17
#>
#> [[18]]
#> [1] 18
#>
#> [[19]]
#> NULL
#>
#> [[20]]
#> NULL
#>
#> [[21]]
#> NULL
#>
#> [[22]]
#> [1] 22
#>
#> [[23]]
#> NULL
#>
#> [[24]]
#> [1] 24
#>
#> [[25]]
#> NULL
#>
#> [[26]]
#> [1] 26
#>
#> [[27]]
#> NULL
#>
#> [[28]]
#> [1] 28
#>
#> [[29]]
#> NULL
#>
#> [[30]]
#> NULL
#>
#> [[31]]
#> NULL
#>
#> [[32]]
#> [1] 32
#>
#> [[33]]
#> NULL
#>
#> [[34]]
#> [1] 34
#>
#> [[35]]
#> NULL
#>
#> [[36]]
#> NULL
#>
#> [[37]]
#> [1] 37
#>
#> [[38]]
#> NULL
#>
#> [[39]]
#> NULL
#>
#> [[40]]
#> NULL
#>
#> [[41]]
#> [1] 41
#>
#> [[42]]
#> [1] 42
#>
#> [[43]]
#> [1] 43
#>
#> [[44]]
#> [1] 44
#>
#> [[45]]
#> NULL
#>
#> [[46]]
#> NULL
#>
#> [[47]]
#> [1] 47
#>
#> [[48]]
#> NULL
#>
#> [[49]]
#> NULL
#>
#> [[50]]
#> NULL
#>
#> [[51]]
#> [1] 51
#>
#> [[52]]
#> NULL
#>
#> [[53]]
#> [1] 53
#>
#> [[54]]
#> [1] 54
#>
#> [[55]]
#> [1] 55
#>
#> [[56]]
#> NULL
#>
#> [[57]]
#> NULL
#>
#> [[58]]
#> NULL
#>
#> [[59]]
#> [1] 59
Created on 2021-07-28 by the reprex package (v2.0.0)
Regards,
Ron.
1 Like
This is pretty eloquent and solves my problem! Thanks so much 
system
Closed
4
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.