Использование semi_join для нахождения сходства, но не возвращает по ошибке - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь найти похожие гены между двумя столбцами, чтобы позже я мог работать только с похожими генами.Ниже мой код:

top100_1Beta <- data.frame(grp1_Beta$my_data.SYMBOL[1:100])
top100_2Beta<- data.frame(grp2_Beta$my_data.SYMBOL[1:100])
common100_Beta <- semi_join(top100_1Beta,top100_2Beta)`

Когда я запускаю код, я получаю следующую ошибку:

Ошибка: by требуется, потому что источники данных не имеют общих переменных

Это неправильно, поскольку, когда я открываю top100_1Beta и top100_2Beta, я вижу, по крайней мере, в первых нескольких списках точно такие же гены: ATP2A1, SLMAP, MEOX2, ...

Я запутался, почему тогда возвращается, что нет общих черт.Любая помощь будет принята с благодарностью.Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Я не думаю, что вам нужна какая-либо форма *_join здесь;вместо этого кажется, что вы ищете intersect

intersect(grp1_Beta$my_data.SYMBOL[1:100], grp2_Beta$my_data.SYMBOL[1:100])

Это возвращает vector общих записей среди первых 100 записей grp1_Beta$my_data.SYMBOL и grp1_Beta$my_data.SYMBOL.

0 голосов
/ 30 ноября 2018

Без полного рабочего примера, я предполагаю, что ваши фреймы данных top100_1Beta и top100_2Beta не имеют одинаковые имена столбцов.Это, вероятно, grp1_Beta.my_data.SYMBOL.1.100. и grp2_Beta.my_data.SYMBOL.1.100..Это означает, что функция semi_join не знает, где сопоставлять данные.Переименование столбцов должно решить проблему.

...