Мы можем сделать это за tidyverse
с помощью discard
, используя list
элементы, имеющие intersect
ing-элементы, и преобразовать неравную list
длину в matrix
с stri_list2matrix
из stringi
library(tidyverse)
library(stringi)
map(r, ~ discard(.x, .x %in% reduce(r, intersect))) %>%
stri_list2matrix
# [,1] [,2] [,3] [,4] [,5]
#[1,] "March" "April" "May" "June" "asdfgg"
#[2,] "Ram" NA "Shyam" "abcd" "dfhfhsa"
#[3,] NA NA NA "July" "qwer"
или в одну линию без труб
stri_list2matrix(map(r, discard, `%in%`, reduce(r, intersect)))
данные
r <- list(First = c("Jan", "feb", "March", "Ram"), Second = c("Jan",
"feb", "April"), Third = c("Jan", "feb", "May", "Shyam"), Fourth = c("Jan",
"feb", "June", "abcd", "July"), Fifth = c("Jan", "feb", "asdfgg",
"dfhfhsa", "qwer"))