У меня возникла проблема с, казалось бы, простой проблемой в R, которая ищет совпадающие значения в нескольких фреймах данных.
Недавно я опубликовал вопрос для совета, но отправляю другой, так как думаю, что лучшим решением этой проблемы может бытьцикл.
У меня есть несколько фреймов данных с несколькими столбцами, и я хотел бы эффективно найти перекрывающиеся значения между различными фреймами данных, однако проблема в том, что значения в первом столбце каждого фрейма данных дублируются.Причина этого заключается в том, что различные значения во втором столбце связаны с одним и тем же элементом в первом столбце.Полученная таблица будет выглядеть следующим образом:
DF1
Feature1 Feature2 delay pBefore
pAfter corBefore
4 ENSMUSG00000001525 ENSMUSG00000046434 0 1.598060e-03
1.598060e-03 0.9671799
6 ENSMUSG00000001525 ENSMUSG00000059796 0 1.431435e-03
1.431435e-03 0.9689473
8 ENSMUSG00000001525 ENSMUSG00000029814 -1 5.755380e-03
1.131615e-03 0.9374006
DF2
Feature1 Feature2 delay pBefore pAfter corBefore
3 ENSMUSG00000001525 ENSMUSG00000047689 0 6.810160e-04
6.810160e-04 0.9786161
4 ENSMUSG00000001525 ENSMUSG00000046434 0 2.271583e-03
2.271583e-03 0.9608283
6 ENSMUSG00000001525 ENSMUSG00000059796 0 9.488937e-04
9.488937e-04 0.9747420
14 ENSMUSG00000001525 ENSMUSG00000028832 0 1.940198e-03
1.940198e-03 0.9638164
Существует до 5000 отдельных функций, каждая из которых повторяется, как показано выше в $feature1 (это всего лишь пример одного гена).
Что я хотел бы сделать, это определить в функции 2 для каждого кадра данных (у меня будет до 12 кадров данных), что для каждого уникального гена(т. е. ENSMUSG00000001525), каковы общие элементы в функции 2 в каждом отдельном кадре данных.
Например, приведенные выше таблицы показывают, что ENSMUSG00000046434 является общим для обоих фреймов данных для гена ENSMUSG00000001525.
Ген ENSMUSG00000046434 также может присутствовать и перекрываться между двумя фреймами данных для другого уникального элемента в feature1 (т.е. другого гена), и, следовательно, эти гены также могут дублироваться в признаке 2, но для разных генов в признаке!
Я хочу определить для каждого отдельного гена в feature1 между фреймами данных, есть ли общие гены в Feature 2. Для меня здесь проблема в том, что функция 1, как вы видите, дублируется, и я пытаюсь сделатьон уникален и поэтому не может сделать простое сопоставление.
Я попытался цикл for для циклического прохождения каждого гена, указав, что feature1 должен быть уникальным?хотя я не уверен, что подход правильный ... ... 1023 *
for (Feature1 in unique(df1$Feature1, df2$feature1 etc)) {
matched<- match(Feature1[df1£feature2, df2$feature2, df3$feature2 etc],)
print(matched)
}
На мой взгляд, это должно выглядеть примерно так?
Это гораздо сложнее, чем я думал, иЯ думаю, что тот факт, что первые столбцы повторяются, сбивает меня с толку!Любая помощь будет высоко ценится!
Большое спасибо!