Я читаю через инструкции пакета Matrix в R. Но я не мог понять p
аргумент в функции:R построения разреженной матрицы
sparseMatrix(i = ep, j = ep, p, x, dims, dimnames,
symmetric = FALSE, index1 = TRUE,
giveCsparse = TRUE, check = TRUE)
По словам http://stat.ethz.ch/R-manual/R-devel/library/Matrix/html/sparseMatrix.html
р:
числовой (целочисленный) вектор указателей, по одному для каждого столбца (или строки), к начальному (нулевому) индексу элементов в столбце (или строке) . Точно один из i, j или p должен отсутствовать.
Я полагал p
для сжатого представления либо строк или столбцов индексов, потому что это расточительно иметь несколько элементов в любом i
или j
, чтобы иметь одинаковое значение для представления одной строки/столбца. Но когда я попробовал пример при условии, я все еще не мог понять, как p
является контролирующим, какой элемент x
переходит в какой строке/колонке
dn <- list(LETTERS[1:3], letters[1:5])
## pointer vectors can be used, and the (i,x) slots are sorted if necessary:
m <- sparseMatrix(i = c(3,1, 3:2, 2:1), p= c(0:2, 4,4,6), x = 1:6, dimnames = dn)
Спасибо, получил его. Таким образом, значение i-го элемента в p представляет число элементов x, уже включенных в первый (i-1)-й столбец. Другими словами, различие между i-м и (i-1) -м элементом в p является число элементов x в столбце (i-1) – GorillaInR
@GorillaInR - Да. Строго говоря, предпоследнее предложение в вашем комментарии неточно, но последнее предложение. Так что да, похоже, что у тебя это есть. –
- Если конечная инструкция верна, то предпоследнее утверждение также будет истинным: каждое различие представляет собой число элементов x в соответствующем столбце, тогда сумма первых (i-1) разностей = общее число x элементов уже включены в первые (i-1) столбцы = значение i-го элемента p – GorillaInR