簡體   English   中英

R比較列並grep假值

[英]R compare columns and grep the false values

我有一個數據框,首先我比較它們以創建一列布爾值,然后我想通過在前兩列中對它們進行 grep 來知道哪個是假的。

df:
    200610-1    200610-10   
AA  AA  TRUE
CC  CC  TRUE
AA  AA  TRUE
AA  EE  FALSE
AA  AA  TRUE
RR  RR  TRUE
AA  AA  TRUE
FF  AA  FALSE
NN  NN  TRUE
AA  AA  TRUE
BB  RR  FALSE

desired output:
4 AA EE
8 FF AA
11 BB RR

我比較了他們

 table(df[,2] == df[,3])

但是后來我不知道如何將布爾值 grep 到數據框值中。 謝謝。

而不是創建布爾列(我猜在輸出中我們不需要它),只需比較第一次和第二次比較以創建一個返回布爾值的表達式並使用它來對行進行子集化。

df[df[,1]!= df[,2],]
#    200610-1 200610-10
#4        AA        EE
#8        FF        AA
#11       BB        RR

或者使用你的布爾列:

df[which(df[,3]==F),]

4  AA EE FALSE
8  FF AA FALSE
11 BB RR FALSE

假設列是字符,這是另一種方式:

df[-which(df[,1]==df[,2]),]

如果您想使用 grep,請嘗試

df[!apply(df, 1, function(x) grepl(x[1], x[2])),]

4  AA EE
8  FF AA
11 BB RR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM