여러 행렬의 열을 for 루프에 전달하려고합니다.행렬의 각 행렬의 개별 열을 변수로 전달
mat1 = matrix(rep(1:25), 5,5)
mat2 = matrix(rep(26:50), 5,5)
array.mat = array(c(mat1,mat2), dim=c(5,5,2))
mat1.ncol = ncol(mat1)
mat2.ncol = ncol(mat2)
mat.ncol = c(mat1.ncol, mat2.ncol)
mat.ncol
array.mat
for (dimi in 1:2){
dim.col = mat.ncol[dimi]
for (coli in 1:dim.col){
st = shapiro.test(array.mat[,coli,dimi])$p.value
if(st > .001){
array.mat[,coli,dimi] = log(array.mat[,coli,dimi])
}}}
을하지만, 내 데이터는 같은 수의 열이없는, 그래서 사용하고 싶습니다 : 내 두 행렬은 동일한 수의 열이 있다면
, 나는 이런 식으로 뭔가를 할 수 대신 행렬의 목록.
mat1 = matrix(rep(1:10), 5,2)
mat2 = matrix(rep(26:50), 5,5)
list.mat=list(a=mat1, b=mat2)
list.mat
하지만 행렬의 열을 전달하는 방법을 알 수 없습니까?
list.mat$a[1:5]
은 첫 번째 행렬의 첫 번째 열을 제공하지만 루프에서 $ a와 [startindex : endindex]를 어떻게 전달합니까? 내가 보는 다른 모든 답변은 의 i 번째 요소 (예 : 열)를 모두 전달하는 경향이 있습니다 ( 행렬). 두 개의 행렬 (a와 b)를 나중의 계산을 위해 분리 해 둘 필요가 있습니다. 그러나이 두 가지 행렬에 대한 두 행렬의 목록을 함께 사용하기를 원합니다. 또 다시, 나는 아마 이것을 잘못 생각하고있을 것이다. 어떤 생각을 해줘서 고마워.
오이! 고맙습니다. 간단한 대답. 가능한 모든 조합의 구문을 시도하고 잘못된 오류 수를 계속 유지해야합니다. 3 개의 텍스트 또는 많은 웹 검색에서이 답변을 찾을 수 없습니다. 고맙습니다! – user7964
도와 드리겠습니다! 목록 색인 생성은 약간 이상합니다. 'my_list [1]'은 길이가 1 인리스트이다. my_list [[1]]는리스트의 위치 1에있는 것이 든든된다. – arvi1000