Предположим, у меня есть следующий список данных:
lst <- list(
a=data.frame(key=c(1,2,3), val=c(10,20,30)),
b=data.frame(key=c(1,2,3), val=c(100,200,300)),
c=data.frame(key=c(1,2,3), val=c(1000,2000,3000)),
d=data.frame(key=c(1,2), val=c(10000,20000)))
Как мне создать файл data.frame следующим образом? (или аналогичный):
key val.a val.b val.c val.d
1 1 10 100 1000 10000
2 2 20 200 2000 20000
3 3 30 300 3000 NA
Я пытался сделать это таким образом (но не удалось):
Browse[2]> Reduce(function(x,y) merge(x, y, by = 'key', all.x = T), lst)
key val.x val.y val.x val.y
1 1 10 100 1000 10000
2 2 20 200 2000 20000
3 3 30 300 3000 NA
Warning message:
In merge.data.frame(x, y, by = "key", all.x = T) :
column names ‘val.x’, ‘val.y’ are duplicated in the result
ПРИМЕЧАНИЕ. Я бы предпочел решение base-R, но я интересуются другими способами сделать это