У меня есть 3 набора данных, которые я переставлял 10 раз. Каждая перестановка набора данных создает столбец из 3-х матриц (одна матрица на один набор данных). Эти 3 матрицы (m1
, m2
, m3
) приведены в списке L
. Я хотел бы допросить все возможные комбинации (10x10x10 = 1000) для каждой записи (в этом случае 4). Я использовал expand.grid предоставить все комбинации вызовов столбцов через 3 матриц в ряду другой матрицы M
:R использование lapply & sapply для запроса списка матриц, содержащих перестановочные данные
M<-expand.grid(seq(1:10),seq(1:10),seq(1:10))
Вот мои данные в списке:
m1<-matrix(c(1,2,1,0,3,2,1,2,3,4),nrow=4, ncol=10)
m2<-matrix(c(m1[1,]),nrow=4,ncol=10)
m3<-matrix(c(m1[2,]),nrow=4,ncol=10)
L<-list(m1, m2, m3)
Можете ли вы помочь мне использовать do.call
, cbind
, lapply
/sapply
эффективно извлечь столбец координат из М опрашивать соответствующие столбцы в 3-х матриц, содержащихся в L и связать их в новую матрицу как таковой:
m.res<-for (i in 1:nrow(M) { "get" L[[1:3]][M[i,]] }
Для i=1
, m.res
уступит:
1 1 2
2 3 2
1 3 4
0 1 0
Я ясно нужен учебник для lapply
/sapply
как это не должно быть это трудно.
Я изменил 'test' на' M' в вашем коде. Если это не то, что вы намеревались, добавьте определение для 'test'. – nico
+1 например, входные данные и желаемый выход. В следующий раз также покажите, что вы пробовали, и * как * это не сработало, и это будет прекрасный вопрос. –
@ SimonO101 хорошо пункт! У меня нет моей .Rhistory на этом ноутбуке, но я помню, что я пробовал различные схемы, чтобы передать элементы из M непосредственно в L, чтобы подмножество нужных столбцов. Тогда я понял, что мне нужно использовать приложение – reviewer3