У меня 2 dataframes:Intersect dataframe на несколько столбцов
DAT: 1900 набл из 9 переменных
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 V_P50P50_Q3 chr12 106642383 106642395 + 18.1425 4.03e-08 0.0515 GGGGGACTCCCCC
2 V_P50RELAP65_Q5_01 chr8 142276666 142276677 - 16.6429 2.51e-07 0.2780 GGGATTTCCCAC
3 V_RELA_Q6 chr22 51020067 51020078 - 15.9395 2.71e-07 0.3350 GGGAATTTCCCC
4 V_NFKB_Q6_01 chr14 98601454 98601469 + 17.0684 3.08e-07 0.236 GGAGTGGAAATTCC
5 V_CREL_Q6 chr22 51020068 51020079 - 16.1165 3.19e-07 0.4050 AGGGAATTTCCC
dat.markov: 1486 набл из 9 переменных
V1 V2 V3 V4 V5 V6 V7 V8 V9
1 V_NFKB_Q6_01 chr14 98601454 98601469 + 17.2212 1.33e-07 0.146 GGAGTGGAAATTCCCT
2 V_P50P50_Q3 chr12 106642383 106642395 + 16.9358 1.57e-07 0.201 GGGGGACTCCCCC
3 V_CREL_Q6 chr22 51020068 51020079 - 16.0549 2.29e-07 0.292 AGGGAATTTCCC
4 V_NFKB_Q6_01 chr22 51020064 51020079 + 16.9906 2.32e-07 0.146 TTGGGGGAAATTCCCT
5 V_RELA_Q6 chr22 51020067 51020078 - 15.7496 3.42e-07 0.433 GGGAATTTCCCC
мне нужно объединить два кадра данных, чтобы я получал все строки с соответствующими столбцами V1, V2, V3 и V4 между двумя кадрами данных.
Я пробовал:
y<-merge(dat,dat.markov,by=c("V1","V2","V3","V4"))
, который дает мне слитый dataframe, но с 1513 набл. Но технически число наблюдений должно быть равно или меньше, чем меньший информационный кадр, то есть 1486 об.
Мои слиты data.frame выглядит хорошо с точки зрения количества столбцов, возвращаемых:
V1 V2 V3 V4 V5.x V6.x V7.x V8.x V9.x V5.y
1 V_CREL_01 chr10 112778464 112778473 + 12.9434 1.94e-05 0.694 TGGGTTTTCC +
V6.y V7.y V8.y V9.y
1 12.8838 2.35e-05 0.788 TGGGTTTTCC
Я знаю, что вы можете пересекать data.frames используя один столбец, но есть способ, в котором вы можете пересечь две данные .frames на нескольких столбцах?
Вы делаете это правильно, однако, если у вас есть строки, где сочетание этих трех колонок не является уникальным, вы можете иметь очень большой результат! например 'merge (data.frame (X = rep (1: 4, 2), Y1 = ПИСЬМА [1: 4]), data.frame (X = 1: 3, Y2 = буквы [1: 3]))' где результат длиннее второго. – Justin
Я думаю, что вы правы, я только что проверил, и в моем объединенном фреймворке есть много дубликатов. Поэтому в зависимости от данных мой код будет работать. Благодаря! –