У меня есть целый набор матриц, которым я хочу назначить имена столбцов и строк на основе столбца имен, которые хранятся в другом столбце (Names) в имеющемся у меня фрейме данных (месяцы).
Каждая матрица, которой я хочу присвоить имена, соответствует объединенной "партнерской" строке и метрике, хранящейся здесь, например одна из матриц называется facebook_Total_Completed_Rentals:
Metrics = c('_Total_Completed_Rentals','_Registered_Completed_rentals',
'_Registered_renters','_New_Registrations')
Partners = c('facebook', 'altrooz', 'adperio', 'snapchat', 'apple', 'google')
Я хочу пройти через эти два цикла, чтобы присвоить имена матрицам таким образом, чтобы избежать необходимости вручную кодировать все операторы colnames и row.names:
for(i in 1:length(Metrics)){
for(j in 1:length(Partners)){
temp = paste0(Partners[j],Metrics[i])
colnames(temp)= months$Names[1:(months_cut-1)]
row.names(temp) = months$Names[1:(months_cut-1)]
}
}
Но получаю ошибку:
Error in `colnames<-`(`*tmp*`, value = months$Names[1:(months_cut - 1)]) :
attempt to set 'colnames' on an object with less than two dimensions
Пожалуйста помоги
get
для возврата объекта среды по имени. Попробуйтеtmp_matrix <- get(temp)
внутри цикла, поскольку temp - это символьное значение, а не фактический объект матрицы. Но в идеале вы сохраняете все похожие структурированные матрицы в списке, а не как отдельные объекты, и вызываете его по списку и его имени:list$facebook_Total_Completed_Rentals
. - person Parfait   schedule 27.11.2018