Question

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
Was it helpful?

Solution

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,]

OTHER TIPS

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top