r удалить столбцы с пустым вектором значений - PullRequest
0 голосов
/ 17 декабря 2018

Мы все знаем, как исключить столбцы из матрицы, используя вектор индексов столбцов:

v=c(1,3)
a = matrix(rnorm(12),nrow=3)
a[,-v]

Но когда вектор индексации пуст, возвращаемая матрица пуста:

v = numeric()
a[,-v]
# returns matrix with 0 columns

Как я могу получить возвращенную матрицу в качестве исходной матрицы, когда исключенный набор индексов столбцов пуст?

Должен быть более изощренный способ, чем использование громоздких if else:

if (length(v)==0) {
    b = a
} else {
    b = a[,-v]
}

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

повтори предыдущую команду и у тебя все будет хорошо

0 голосов
/ 17 декабря 2018

Мы могли бы создать индекс с setdiff

j1 <- setdiff(seq_len(ncol(a)), v)

и затем подмножеством 'a'

a[, j1, drop = FALSE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...