행렬 목록을 R로 작성했습니다. 목록의 모든 행렬에서 특정 색인의 행렬 요소 모음을 "제거"하고 싶습니다. 결장 운영자가 이것을 한 줄에 구현할 수 있다고 생각했습니다. 예를 들어, 다음 목록에있는 모든 행렬의 [1,1] 요소에 액세스하기위한 시도이다 ". 차원의 잘못된 번호"R 행렬 연산자가 행렬 목록에 있습니다.
myList = list() #list of matrices
myList[[1]] = matrix(1:9, nrow=3, ncol=3, byrow=TRUE) #arbitrary data
myList[[2]] = matrix(2:10, nrow=3, ncol=3, byrow=TRUE)
#I expected the following line to output myList[[1]][1,1], myList[[2]][1,1]
slice = myList[[1:2]][1,1] #prints error: "incorrect number of dimensions"
위의 코드의 마지막 줄은 오류가 발생합니다
이#assume myList has already been created (see the code snippet above)
slice = c()
for(x in 1:2) {
slice = c(slice, myList[[x]][1,1])
}
#this works. slice = [1 2]
사람이 한 줄에 위의 작업을 수행하는 방법을 알고 있나요 :
는 참고로, 여기에 내가 할 노력하고있어 실무 (미만 우아한) 구현입니까?
"매트릭스 목록"은 다른 것으로 대체 될 수 있습니다. 누군가가 위의 작업을 수행 할 수있는 대체 "매트릭스 모음"데이터 구조를 제안 할 수 있다면 해결 될 것입니다.
아마도이 질문은 어리석은 일입니다.하지만 정말 깨끗한 한 줄 구현을하고 싶습니다.
... 색인 및 추출 요소를 쉽게 만들 것 . 예 : 'foo <- list (1,2,3,4); dim (foo) <- c (2,2); foo [1,2]; foo [[1,2]]'. 때때로 이것은 유용 할 수 있습니다. –
@SachaEpskamp 잘 잡으세요. 명확하게 수정하겠습니다. – joran
'myList [1 : 2] [1,1]'은 여전히 무의미하지만'myList [1 : 2]'는 하나의 차원 만있는 목록을 반환합니다. :) –