Извлечение строк из матрицы, которые удовлетворяют условию - PullRequest
1 голос
/ 15 октября 2019

Я хочу извлечь строки из матрицы, где есть перекрытие между 3-м столбцом Mat1 и subset.vector.

Настройка проблемы:

mat1= data.frame(matrix(nrow=10, ncol =5))
mat1[,2:5] = rnorm(40,0,1)
mat1[,1] = c(1,3,4)
mat1[,3] = c(500,120,7,9,10,11,14,53,12,13)
mat1

subset.vector <- c(500,120, 11, 13, 15)

вывод:

mat2 = mat1[c(1,2,6,10),]

Я хочу иметь возможность сделать это для матрицы с 1000 строками без указания строк для извлечения по отдельности. Я специально настроил subset.vector, чтобы включить элемент не в Mat1. Я также убедился, что он меньше по размеру.

1 Ответ

1 голос
/ 15 октября 2019

Вы можете использовать %in%, чтобы увидеть, где subset.vector соответствует столбцу 3 mat1, например:

identical(mat2, mat1[mat1[,3] %in% subset.vector,])
#[1] TRUE
...