В настоящее время у меня есть 185 * 185 матрица , и цель состоит в том, чтобы преобразовать эту матрицу в 35 * 35 матрицу путем агрегирования значения на основе строк и столбцов матрицы 185 .
Пример:
- У меня матрица 8 * 8, как показано ниже:
matrix_x <- matrix(1:64, nrow = 8)
- Затем я хочу преобразовать ее в матрица 4 * 4:
matrix_y <- matrix(NA, nrow = 4, ncol = 4)
- Приведенный ниже список создан для агрегирования столбцов матрицы 8 * 8 в матрицу 4 * 4
col_list <- list(
1,
2:3,
c(4,8),
5:7
)
- Что я сделал, чтобы добиться этого, так это присвоив значение вручную, как показано ниже
matrix_y[1,1] <- sum(matrix_x[col_list[[1]],col_list[[1]]])
matrix_y[1,2] <- sum(matrix_x[col_list[[1]],col_list[[2]]])
matrix_y[1,3] <- sum(matrix_x[col_list[[1]],col_list[[3]]])
matrix_y[1,4] <- sum(matrix_x[col_list[[1]],col_list[[4]]])
matrix_y[2,1] <- sum(matrix_x[col_list[[2]],col_list[[1]]])
matrix_y[2,2] <- sum(matrix_x[col_list[[2]],col_list[[2]]])
matrix_y[2,3] <- sum(matrix_x[col_list[[2]],col_list[[3]]])
matrix_y[2,4] <- sum(matrix_x[col_list[[2]],col_list[[4]]])
matrix_y[3,1] <- sum(matrix_x[col_list[[3]],col_list[[1]]])
matrix_y[3,2] <- sum(matrix_x[col_list[[3]],col_list[[2]]])
matrix_y[3,3] <- sum(matrix_x[col_list[[3]],col_list[[3]]])
matrix_y[3,4] <- sum(matrix_x[col_list[[3]],col_list[[4]]])
matrix_y[4,1] <- sum(matrix_x[col_list[[4]],col_list[[1]]])
matrix_y[4,2] <- sum(matrix_x[col_list[[4]],col_list[[2]]])
matrix_y[4,3] <- sum(matrix_x[col_list[[4]],col_list[[3]]])
matrix_y[4,4] <- sum(matrix_x[col_list[[4]],col_list[[4]]])
Этот подход работает хорошо, но я ищу более эффективный способ достижения так как подход, который я использовал, занимает так много строк кода.