. , , , , . mapply ( ) . . ( ) 0.
l1 <- list(L, K, S)
m1 <- matrix(unlist(l1), nrow = sum(lengths(l1)), ncol = length(l1))
m1[!mapply(`%in%`, as.data.frame(m1), l1)] <- 0
m1
# [,1] [,2] [,3]
#[1,] "1" "0" "0"
#[2,] "3" "0" "0"
#[3,] "0" "2" "0"
#[4,] "0" "9" "0"
#[5,] "0" "2:9" "0"
#[6,] "0" "0" "7"
, , , , . , , i.e.
create_mat <- function(list){
m1 <- matrix(unlist(list), nrow = sum(lengths(list)), ncol = length(list))
m2 <- matrix(seq(nrow(m1)), ncol = ncol(m1), nrow = nrow(m1))
l2 <- lapply(lengths(list), seq)
v2 <- c(0, head(cumsum(lengths(list)), -1))
l2 <- Map(`+`, l2, v2)
m1[!mapply(`%in%`, as.data.frame(m2), l2)] <- 0
return(m1)
}
# Test with some values being same for multiple vectors,
M = c("1", "3")
N = c("1", "9", "2:9")
P = c("3")
create_mat(list(M, N, P))
# [,1] [,2] [,3]
#[1,] "1" "0" "0"
#[2,] "3" "0" "0"
#[3,] "0" "1" "0"
#[4,] "0" "9" "0"
#[5,] "0" "2:9" "0"
#[6,] "0" "0" "3"