[英]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.