Код для получения фреймов данных:
rat_all = structure(list(frequency = c(37L, 31L, 14L, 11L, 2L, 3L), isoforms = 8:13,
type = structure(c("rat_all", "rat_all", "rat_all", "rat_all",
"rat_all", "rat_all"), .Dim = c(6L, 1L))), .Names = c("frequency",
"isoforms", "type"), row.names = 8:13, class = "data.frame")
rat_ensembl = structure(list(frequency = c(17L, 8L, 20L), isoforms = 8:10,
type = structure(c("rat_ensembl", "rat_ensembl", "rat_ensembl"
), .Dim = c(3L, 1L))), .Names = c("frequency", "isoforms",
"type"), row.names = 8:10, class = "data.frame")
У меня есть два фрейма данных:
frequency isoforms type
8 17 8 rat_ensembl
9 8 9 rat_ensembl
10 20 10 rat_ensembl
и
frequency isoforms type
8 37 8 rat_all
9 31 9 rat_all
10 14 10 rat_all
11 11 11 rat_all
12 2 12 rat_all
13 3 13 rat_all
Я хотел бы объединить их в один фрейм данных, но также включить недостающие
isoforms
записей, которые появляются во фрейме данных rat_all
, но не rat_ensembl
фрейм данных. Поэтому я хотел бы, чтобы выходные данные представляли собой объединенный фрейм данных, как если бы я переместился
два фрейма данных, но дополненные:
11 0 11 rat_ensembl
12 0 12 rat_ensembl
13 0 13 rat_ensembl
Я думал, что смогу сделать это с помощью слияния, но я получаю огромную путаницу, которую мне приходится раскручивать, чтобы я мог в конечном итоге перейти к нужному формату, но это не очень хорошее решение, если
Я хотел сделать это для четырех или пяти разных типов одновременно. Что мне не хватает? Спасибо!
Чтобы было ясно, я ищу окончательный фрейм данных, который выглядит следующим образом:
frequency isoforms type
1 17 8 rat_ensembl
2 8 9 rat_ensembl
3 20 10 rat_ensembl
4 37 8 rat_all
5 31 9 rat_all
6 14 10 rat_all
7 11 11 rat_all
8 2 12 rat_all
9 3 13 rat_all
10 0 11 rat_ensembl
11 0 12 rat_ensembl
12 0 13 rat_ensembl
Я могу заставить его делать то, что я хочу, если я использую:
z = merge(rat_ensembl, rat_all, by.x="isoforms", by.y="isoforms", all.y=TRUE)
isoforms frequency.x type.x frequency.y type.y
7 7 44 rat_ensembl 69 rat_all
8 8 17 rat_ensembl 37 rat_all
9 9 8 rat_ensembl 31 rat_all
10 10 20 rat_ensembl 14 rat_all
11 11 NA <NA> 11 rat_all
12 12 NA <NA> 2 rat_all
13 13 NA <NA> 3 rat_all
14 14 NA <NA> 1 rat_all
Затем теоретически я мог бы выбрать столбцы isoforms
, frequency.x
, type.x
и
исправить их, чтобы они были правильными для каждого из rat_ensembl
и rat_all
, а затем rbind
тех
фреймы данных вместе, но кажется, что должно быть что-то, чтобы просто обрабатывать это напрямую.