R 通过匹配两列的值筛选数据帧

R 通过匹配两列的值筛选数据帧,r,dataframe,R,Dataframe,我在r中有一个数据帧。我想删除两列中字符串值相等的行。我在r中使用了匹配函数,但无法获得所需的输出。例如,我的数据帧是 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

我在r中有一个数据帧。我想删除两列中字符串值相等的行。我在r中使用了匹配函数,但无法获得所需的输出。例如,我的数据帧是

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

让我们假设您的数据集被称为
dta

然后简单地

dta[which(dta[,1] != dta[,2]), ]
请提供
dput
,以便重现您的示例

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

其中V1和V2是列的名称,不带引号。

假设您将数据放入一个名为df的R对象中,并带有V1和V2列,您可以通过dplyr非常简单地实现这一点

library(dplyr)
df = filter(df, V1 != V2)

dat[dat[,1]!=dat[,2],]
(假设您正在比较第1列和第2列)