Извините, я не мог придумать более информативное название, но вот мой вызов.У меня есть матрица, и мне нужно добавить столбцы в определенных местах на основе параметров, описываемых вектором.Например, если у меня есть следующая матрица:
1, 0, 1, 2, 0
0, 0, 1, 1, 1
1, 1, 0, 0, 0
2, 0, 1, 0, 2
, но для определенного пакета R (без опознавательных знаков) мне нужно добавить столбцы NA в определенном месте.У меня есть вектор, относящийся к столбцам в матрице:
1, 1, 1, 2, 3
, который указывает, что столбцы 1-3 были из одного и того же периода выборки, а столбцы 4 и 5 были из разных периодов выборки.Мне нужно, чтобы количество столбцов в матрице равнялось максимальному числу за тот же период выборки, умноженному на количество периодов выборки.В этом случае есть три 1 (максимальное число любого уникального значения в векторе) и три периода выборки (максимальное число в векторе).Поэтому мне нужна матрица с 9 столбцами (3 х 3).В частности, мне нужно добавить новые столбцы NA после 4-го и 5-го столбцов.По сути, мне просто нужно, чтобы столбцы NA были заполнителями, чтобы иметь матрицу, в которой количество наблюдений (каждый столбец) одинаково (= 3) для каждого из периодов выборки (указано числом в векторе).Это трудно описать, но в этом воображаемом примере я хотел бы в итоге:
1, 0, 1, 2, NA, NA, 0, NA, NA
0, 0, 1, 1, NA, NA, 1, NA, NA
1, 1, 0, 0, NA, NA, 0, NA, NA
2, 0, 1, 0, NA, NA, 2, NA, NA
это будет описываться вектором, который выглядит следующим образом:
1, 1, 1, 2, 2, 2, 3, 3, 3
, хотя я и надеваюна самом деле не нужно производить этот вектор, только матрицу.Очевидно, что в этом случае было легко добавить эти столбцы, но для моих данных у меня гораздо более крупная матрица, которая в итоге будет содержать ~ 200 столбцов.Кроме того, мне, вероятно, придется сделать это для многочисленных наборов данных.
Может кто-нибудь помочь мне с способом кодирования этого в R, чтобы я мог автоматизировать процесс расширения матрицы?
Спасибодля любого совета или предложений!
РЕДАКТИРОВАТЬ: чтобы сделать вещи немного более похожими на мои фактические данные, вот воспроизводимая матрица и вектор, похожий на мои текущие:
m <- matrix(rpois(120*26, 1), nrow = 120, ncol = 26)
v <- c(1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7)