排除基于R中多个字符串的行

时间:2014-02-10 17:33:03

标签: r matrix lines

我想排除Matrix Y 中的所有行,其中numberall列中的单元格等于 X <中的number1number2列/强>

矩阵 X

  number1  number2  inf
   gen1     genx1   223
   gen1     genx2   221
   gen2     genx3   224
   gen2     genx5   225

矩阵 Y

   numberall  inf
    gen1      223
    genx1     256
    gen2      225
    genx2     214
    gen3      563
    genx3     235
    gen4      256
    genx4     568

输出:

   numberall  inf
    gen3      563
    gen4      256
    genx4     568

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

假设YX实际上是数据框:

Y[!(Y$numberall %in% as.character(unlist(X[, 1:2]))), ]

产生

#   numberall inf
# 5      gen3 563
# 7      gen4 256
# 8     genx4 568