Я хотел бы выполнить некоторые операции на простой матрице, скажем:векторизации с различными colindices
aaa <- matrix(runif(200), ncol=5)
aaa
То, что я хотел бы сделать: добавить номер - например, 100 - в некоторых значениях матрица в фиксированных строках (т. е. должно быть фиксированное расстояние), но меняться (т.е. здесь не должно быть шаблона).
Для примера см желаемый результат после некоторых модификаций:
aaa[1:5, c(3,5)] <- aaa[1:5, c(3,5)] + 100
aaa[11:15, c(1,2)] <- aaa[11:15, c(1,2)] + 100
aaa[21:25, c(4,5)] <- aaa[21:25, c(4,5)] + 100
aaa[31:35, c(1,5)] <- aaa[31:35, c(1,5)] + 100
aaa
Я также иметь матрицу столбцов, которые должны быть изменены:
bbb <- matrix(cbind(c(3,5),c(1,2),c(4,5),c(1,5)), ncol = 4)
и следующий вектор индексов строк
ccc <- c(1:5, 11:15, 21:25, 31:35)
Это можно решить, используя петлю, но ее также можно решить путем v ectorization? По моему мнению, это невозможно, потому что столбцы меняются. Или я чего-то не хватает?
Здравствуйте 42-, могли бы вы разработать бит в отношении моего примера? Я не могу просто cbind (rows, cols) из-за неправильных измерений. – user3032689
Это зависит от ваших намерений с использованием c (2,5). Я предполагаю, что вы хотели использовать rep (2,5)? –
Нет, e. г. c (2, 5) Я имел в виду обращение к столбцам с индексами 2 и 5. Эти индексы столбцов различаются по назначению между итерациями. – user3032689