행렬 (객체) 이름이 목록에있는 행렬을 채우려고합니다. 나는 get()을 사용하여 주어진 이름의 객체를 반환 할 수 있지만, get()을 사용하여 행렬을 정의 할 때 함수 문제로 실행 중임 객체를 채우려 고합니다. 코드의 마지막 줄에 따라서 R get() 함수 오류
#Create list of matrix names:
list.names <- c("m.1")
#Create matrix object
m.1 <- matrix(nrow=2,ncol=2)
#Return matrix m.1 from the list.names using get(). Works great!
get(list.names[1])
#Populate m.1 with some values. Doesn't work.
get(list.names[1]) <- c(1,2,3,4)
, 나는 오류 받고 있어요 :
기능을 찾을 수 없습니다
"얻을 < -"유사
를, 내가 사용 M.1를 호출 할 수
를그러나 매트릭스를 채울 때 R이 비슷한 '함수를 찾을 수 없습니다.'오류를 반환합니다.
누군가 내 접근 방식에서 오류를 설명 할 수 있습니까?
편집/업데이트 :
그래서 여기에 게시에 대한 질문을 단순화하기 위해 내 시도에, 나는 내가 할 시도하고있는 무슨을 과도하게 단순화 한 수 있음을 깨달았다.
사실, 사실, 나는 집합의 요소 내에서 요소를 채우려고 시도하고 있습니다. 행렬의 이름은 list.names 객체에 포함됩니다. for() 루프를 사용하여 행렬 내의 각 요소를 채 웁니다.
그래서, 사실, 내 문제는 더 정확하게 명시된 바와 같이 될 것이다 :
이get(list.names[1])[1,1] <- some_value
답장의 몇 내 원래의 게시물에 따라 할당하는 사용하는 것이 좋습니다,하지만 난을 시도하셨습니다있어 주어진했다 전체 객체가 아닌 객체 내의 요소를 '할당'하면이 접근 방식은 작동하지 않습니다.
죄송합니다.
당신이'assign (get (list.names [1]), 1 : 4)'처럼'assign'을 원한다고 생각합니다. 구체적으로 설명 할 수는 없지만, 설명은 "get"에서 반환 된 객체는 오류로 표시되는 할당 ('<-') 메서드를 갖지 않습니다.비슷한 결과를 얻기 위해 이런 종류의 체조가 절대로 필요하지 않다는 경고가 있습니다. 이것을 다른 질문으로 확장하면 더 나은 해답, 이해 및 코드를 얻을 수 있습니다. – Justin
@ Justin Not quite. 'get()'에 의해 반환 된 객체가 아닌 할당 함수를 가지지 않는 것은'get()'입니다. 근본적으로''get <- '()'함수가 없으므로 오류가 발생합니다. 파서는 이러한 종류의 구문을보고이를 "get <- '(x = list.names [1], value = c (1,2,3,4))'호출로 변환합니다. ''get <- "'함수가 존재하지 않는다는 것에 대한 인자와 그에 따른 에러를 평가합니다. –