2015-04-10 2 views
1

У меня есть список l формы говорят:R - Объединение двух списков члены списка

R> l 
[[1]] 
[1] 1 

[[2]] 
[1] 2 

[[3]] 
[1] 3 

[[4]] 
[1] 4 

Теперь я хочу, чтобы объединить списки членов этого списка. Например, когда я говорю, что хочу объединить л [[1]] и L [[2]], я хочу, чтобы результат:

R> l 
[[1]] 
[1] 1 2 

[[2]] 
[1] 3 

[[3]] 
[1] 4 

При объединении два списка, мне не нужен dupilcate элементов в результате. Следовательно, я использую union над двумя списками участников.

R> union(l[[1]], l,[[2]]) 
[1] 1 2 

Как я могу выполнить операцию слияния? Могу ли я сделать это с помощью некоторой предопределенной функции? Благодаря

ответ

2

Вы можете написать у вас есть слияние следующим образом:

l <- as.list(1:4) 

mymerge <- function(mylist, element1, element2){ 
    mylist[[element1]] <- union(mylist[[element1]], mylist[[element2]]) 
    mylist[[element2]] <- NULL 
    return(mylist) 
} 

l <- mymerge(l,1,2) 

Результат:

> l 
[[1]] 
[1] 1 2 

[[2]] 
[1] 3 

[[3]] 
[1] 4 

Комментарий: Как akrun отметил, вы можете также использовать c вместо union

+0

После глядя на первое решение akrun, я использовал 'append (list (union (l [[element1]], l [[element2]]), l [-c (element1, element2)]). Но это именно то, что я хотел. Благодарю. –