문제

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
도움이 되었습니까?

해결책

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

다른 팁

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top