Знакомство с индексированием в R поможет вам в этой задаче (и многих других) без необходимости в дополнительных функциях.Чтобы выбрать только определенные строки и столбцы в матрице или фрейме данных, используется формат x[rows,columns]
, в котором все поля, оставленные либо rows
, либо columns
, не отображаются.
В вашем случае это то, что мы могли бы сделать.Во-первых, давайте создадим пример матрицы (обратите внимание, что «вектор из 2 столбцов» на самом деле является матрицей):
x <- cbind(c("12/11/11", "12/10/11", "10/16/11",
"11/07/11"), c(1, 255, 3, 255))
# [,1] [,2]
#[1,] "12/11/11" "1"
#[2,] "12/10/11" "255"
#[3,] "10/16/11" "3"
#[4,] "11/07/11" "255"
Используя логический вектор в индексе строк, вы можете вернуть только те строки, которые содержат определеннуюзначение.Например, вот логический вектор для любой строки, где столбец 2 = 255:
x[,2] == 255
#[1] FALSE TRUE FALSE TRUE
При вставке этого логического вектора в индекс строки будут возвращены только строки, помеченные TRUE
.
x[x[,2]==255,]
# [,1] [,2]
#[1,] "12/10/11" "255"
#[2,] "11/07/11" "255"
Чтобы отображались только даты, укажите столбец 1 в индексе:
x[x[,2]==255,1]
#[1] "12/10/11" "11/07/11"