Я хочу попробовать строки из матрицы, а затем установить все числовых значения в этой отобранной строке 0.R выборки строки из матрицы и установить числовые значения 0
данные
matrix = structure(c('Sp1', 'Sp2', 'Sp3', 'Sp4', 1, 1, 1, 0, 0, 0, 1, 1, 0,
0, 0, 1), .Dim = c(4L, 4L), .Dimnames = list(NULL, c("", "col1", "col2", "col3")))
Calc суммирует
matrix = `colnames<-`(cbind(matrix, rowSums(`class<-`(matrix[,-1], 'numeric'))),c(colnames(matrix), 'Sums'))
Выход
col1 col2 col3 Sums
[1,] "Sp1" "1" "0" "0" "1"
[2,] "Sp2" "1" "0" "0" "1"
[3,] "Sp3" "1" "1" "0" "2"
[4,] "Sp4" "0" "1" "1" "2"
Итак, он создает матрицу, затем вычисляет суммы. Теперь я хочу, чтобы он пробовал случайную строку, задал все значения в числовой части до 0 и пересчитал суммы.
До сих пор я получил это:
sample <- matrix[sample(nrow(matrix),size=1,replace=FALSE),]
+1, особенно для объяснения, почему он должен использовать имена строк. Во всяком случае, другим решением может быть образец 'm2 * (c (rep (1, nrow (m2) -1), 0))'. – nicola
@nicola Спасибо, код выборки элегантный – akrun