Подтвердить что ты не робот

Как правило, отключить уменьшение размеров для матриц?

Как мы все знаем, R пытается уменьшить матрицы до векторов, если его размер столбца или строки равен 1. Это автоматическое падение размеров может быть предотвращено с помощью команды drop=F.

Однако в настоящее время я пишу большой пакет R и требую, чтобы в моем коде было отключено измерение в несколько сотен раз, поэтому мне пришлось бы вручную найти эти места и добавить drop=F много сто раз.

Поэтому я хотел бы знать, есть ли какой-либо вариант или возможность вообще отключить удаление размеров для матриц в R?

4b9b3361

Ответ 1

Вы можете сделать это, переопределив функцию [:

x <- matrix(1:4,2)

`[` <- function(...) base::`[`(...,drop=FALSE)
x[,1]
     [,1]
[1,]    1
[2,]    2

Вы не можете переопределить аргумент drop, когда вы вызываете его сейчас, так что вы можете использовать его экономно и удалить по завершении.