Начиная с данных примера @ flodel,
my.list <- list()
my.list[["Zhou_et_al_2004"]]["CDC42:P60953"] <- 1
my.list[["Zhou_et_al_2004"]]["CDK2D:NONAME"] <- 2
my.list[["Zhou_et_al_2006"]]["CTTN:Q14247"] <- 3
my.list[["Zhou_et_al_2006"]]["GTSE1:Q9NYZ3"] <- 4
my.list[["Zhou_et_al_2006"]]["CHST11:Q9N"] <- 5
my.list[["Zhou_et_al_2009"]]["CTTN:Q14247"] <- 6
превратить каждый элемент списка в фрейм данных,
a <- lapply(seq_along(my.list), function(i) {
x <- my.list[[i]]
out <- data.frame(name=names(x), out=x)
names(out)[2] <- names(my.list)[[i]]
out
})
объединить все кадры данных вместе,
out <- Reduce(function(x,y) { merge(x, y, all=TRUE) }, a)
и исправьте имена строк.
rownames(out) <- out[,1]
out <- out[,-1]
Вот результат!
> out
Zhou_et_al_2004 Zhou_et_al_2006 Zhou_et_al_2009
CDC42:P60953 1 NA NA
CDK2D:NONAME 2 NA NA
CHST11:Q9N NA 5 NA
CTTN:Q14247 NA 3 6
GTSE1:Q9NYZ3 NA 4 NA