2015-09-13 5 views
2

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

ALDH1A1 ALDH1A1 
ITGA7 CHRNA1 
PPP1R9A ACTG1 
SRGN SRGN 
GRB7 ERBB2 
PAK1 ERBB2 
DLG4  DLG4 
PIK3R2 ERBB2 
PTPN18 ERBB2 
ERBB2 ERBB2 
SMURF2 ARHGAP5 
NF2 ERBB2 
CD82 CD82 
ERRFI1 ERBB2 
CD44 CD44 
TOB1 TOB1 

и мой желаемый кадр данных после фильтрации строк с одинаковыми значениями столбцов является

ITGA7 CHRNA1 
PPP1R9A ACTG1 
GRB7 ERBB2 
PAK1 ERBB2 
PIK3R2 ERBB2 
PTPN18 ERBB2 
SMURF2 ARHGAP5 
NF2 ERBB2 
ERRFI1 ERBB2 
+1

'Даты [Даты [1]! = Даты [, 2],] '(если вы сравниваете столбцы 1 и 2) – josliber

ответ

1

Давайте представим, ваш набор данных называется dta

затем просто

dta[which(dta[,1] != dta[,2]), ] 

Просьба указать dput, чтобы воспроизвести ваш пример.

1

Или

library(dplyr) 
result = dta %>% filter(V1 != V2) 

, где V1 и V2 являются имена столбцов, без кавычек.

3

Если предположить, что у вас есть ваши данные в объект R называется ДФОМ с колоннами V1 и V2, вы можете добиться этого очень просто с dplyr делает

library(dplyr) 
df = filter(df, V1 != V2) 
Смежные вопросы