Как указано @ G5W, вы можете использовать функцию merge
.Сначала вы должны преобразовать свои списки во фреймы данных, а затем merge
.После этого вы можете преобразовать полученный фрейм данных обратно в список.
В принципе, нет необходимости реализовывать алгоритм самостоятельно, используя циклы for.Это уже сделано в базе R. Пожалуйста, смотрите код ниже:
l1 <- list(x = 3:7, y = letters[3:7])
l2 <- list(x = 1:10, z = letters[1:10])
df1 <- as.data.frame(l1, stringsAsFactors = FALSE)
df2 <- as.data.frame(l2, stringsAsFactors = FALSE)
df_m <- merge(df1, df2)
l_m <- as.list(df_m)
l_m
Вывод:
$`x`
[1] 3 4 5 6 7
$y
[1] "c" "d" "e" "f" "g"
$z
[1] "c" "d" "e" "f" "g"