x = read.table(header=T, text="
number1 number2 inf
gen1 genx1 223
gen1 genx2 221
gen2 genx3 224
gen2 genx5 225
")
y = read.table(header=T, text="
numberall inf
gen1 223
genx1 256
gen2 225
genx2 214
gen3 563
genx3 235
gen4 256
genx4 568
")
rows = y$numberall %in% x$number1 | y$numberall %in% x$number2
y[!rows,]
Exclude lines based in multiple strings in R
سؤال
I want to exclude all lines in Matrix Y where cells in numberall
column is equal to number1
or number2
column in Matrix X.
Matrix X:
number1 number2 inf
gen1 genx1 223
gen1 genx2 221
gen2 genx3 224
gen2 genx5 225
Matrix Y:
numberall inf
gen1 223
genx1 256
gen2 225
genx2 214
gen3 563
genx3 235
gen4 256
genx4 568
Output:
numberall inf
gen3 563
gen4 256
genx4 568
المحلول
نصائح أخرى
Assuming Y
and X
are actually data frames:
Y[!(Y$numberall %in% as.character(unlist(X[, 1:2]))), ]
produces:
# numberall inf
# 5 gen3 563
# 7 gen4 256
# 8 genx4 568
لا تنتمي إلى StackOverflow