Подмножество - очень медленная функция, и я лично считаю ее бесполезной.
Я предполагаю, что у вас есть data.frame, массив, матрица с именем Mat
с A
, B
, C
в качестве имен столбцов; тогда все, что вам нужно сделать, это:
В случае одного условия на один столбец, скажем, столбец A
Mat[which(Mat[,'A'] == 10), ]
В случае нескольких условий в разных столбцах вы можете создать фиктивную переменную. Предположим, что условия A = 10
, B = 5
и C > 2
, тогда имеем:
aux = which(Mat[,'A'] == 10)
aux = aux[which(Mat[aux,'B'] == 5)]
aux = aux[which(Mat[aux,'C'] > 2)]
Mat[aux, ]
При тестировании преимущества скорости с system.time
метод which
в 10 раз быстрее, чем метод subset
.