2014-10-14 2 views
1

У меня есть одна пустая матрица, которую я хотел бы заполнить значениями двух других матриц. Это моя пустая матрица:Назначение значений пустой матрице из другой матрицы в R

Att_table_S01_E031_Mod <- matrix(NA, nrow = 16, ncol = 13) 
colnames (Att_table_S01_E031_Mod) <- c("ID", "Area", "LU_1990", "LU_2000", "LU_2005", "CHLU_90_00", "CHLU_00_05", "Tile", "Unique_ID", "D_90_00", "D_00_05", "Source_90_00", "Source_00_05") 

Другие две матрицы содержат информацию, которую я хочу, чтобы включить в эту новую матрицу, такие как ID, Area, LU_1990 и так далее. Тем не менее, я еще не нашел способ сделать это. Некоторые намеки были бы хорошо оценены.

В матрице Att_table_S01_E031 имеется только один столбец. Вы знаете, как я могу разбить его? [1] "ID.Area_ORG.LU_1990.LU_2000.CHLU_90_00.LU_2005.CHLU_00_05.Tile.UNIQ_ID.AREA.D_90_00.D_00_05.Sour_90_00.Sour_00_05.Conf_90_00.Conf_00_05"

+0

Просьба также представить воспроизводимые примеры других матриц. –

+0

Это одно: z <- extract (x = rc_GLC2000_LC, y = Deforested_areas) # это вернет список векторов (один вектор всех значений r для каждой функции в s) # сделать функцию, которая принимает большинство (x) { y <- as.numeric (имена (which.max (таблица (у) } # возвращает одно значение (большинство) в функции г <- экстракт (х = rc_Mod2000_LC, у = Deforested_areas, удовольствие = MAJ) COLNAMES (г) <- с ("LU_2000") –

+0

И второй: Att_table_S01_E031 <- as.matrix (Att_Table_Deforested_areas) –

ответ

0

Для получения дополнительных матриц,,

columnsToTransfer <- c('ID','Area','Tile','Unique_ID','LU_1990') 
otherColumns <- colnames(Att_table_S01_E031_Mod)[!(colnames(Att_table_S01_E031_Mod) %in% columnsToTransfer)] 
Att_table_S01_E031_Mod[,columnsToTransfer] <- table2[,columnsToTransfer] 
Att_table_S01_E031_Mod[,otherColumns] <- table3[,otherColumns] 

, если две меньшие матрицы не собираются полностью заполнять большую матрицу,

columnsToTransfer1 <- c('ID','Area','Tile','Unique_ID') 
columnsToTransfer2 <- 'LU_2000' 
Att_table_S01_E031_Mod[,columnsToTransfer1] <- table2[,columnsToTransfer1] 
Att_table_S01_E031_Mod[,columnsToTransfer2] <- table3[,columnsToTransfer2] 
+0

Если заменить вторую таблицу 2 и таблицу 3 на другую другую, у меня есть это сообщение об ошибке: Ошибка в Att_table_S01_E031 [, columnsToTransfer]: Подкласс вне пределов Знаете ли вы, в чем причина? –

+0

похоже, что у вас нет «ID», «Area», «Tile» и «Unique_ID» в качестве имен столбцов. Проверьте имена (Att_table_S01_E031_Mod). Они все там? – hedgedandlevered

+0

Да, но есть в матрице z У меня есть только один столбец с LU_2000 и в матрице Att_table_S01_E031 У меня больше столбцов, чем у новой матрицы (Att_table_S01_E031_Mod) –

Смежные вопросы