2011-08-19 2 views
3

"사전"에 몇 개의 항목을 저장하여 이름으로 검색 할 수 있습니다. 나는 다음과 같이 간접적으로 그런 일을 형성 할 수있다 :R 목록에 요소 삽입

> a = list(c(1,2),c(9,9,0,0)) 
> names(a) = c("first","second") 
> a 
$first 
[1] 1 2 

$second 
[1] 9 9 0 0 

을하지만, 단순히 같은 이름을 삽입하여 같은 일을 수행 할 수 없습니다

> a=list() 
> a["first"] = c(1,2) 
Warning message: 
In a["first"] = c(1, 2) : 
    number of items to replace is not a multiple of replacement length 
> a 
$first 
[1] 1 

이 왜 그렇게이, 그리고 무엇 구문을 사용하여 벡터 또는 행렬 같은 객체를 목록에 이름으로 삽입해야합니까?

답변

6

[[ 대신 [을 사용하고 있습니다. 이 작업을해야합니다 :

a[['first']] <- c(1,2) 

을해야이 같이

a$first <- c(1,2) 

가 기억 [ 당신에게 하위 목록을 제공 [[요소 특정 액세스있다.

+0

인용 부호를 확인 하시겠습니까? –

+0

@Ben, 'vs'를 의미합니까? 둘 다 R. – highBandWidth

+0

에서 작동합니다. 열린 작은 따옴표가있는 것 같습니다 (마크 업으로 해석되기 때문에 여기서는 입력 할 수 없다고 생각합니다). - "첫 번째"또는 "첫 번째"중 하나가 작동합니다 (동일한 결과). 단락 따옴표를 사용하면 약간 다른 의미가 있지만 작동해야합니다. 단락 기호는 일치해야합니다 ... –

3

하나의 좋은 대답이 있습니다. , 당신이 정말로 함수로 [<-를 사용하는

a=list() 
a["first"] = list(c(1,2)) 
a 
# $first 
# [1] 1 2 

그래서 joran의 완벽하게 잘 대답에 확대, 그리고 둘 ( [를 통해) 제공 및 목록 ( [<-를 통해) 수신 : 여기에 상응하는 대답.

함수가 뭔가를 반환하기 때문에 뭔가를 설정한다는 약속이 아닙니다.

+0

"약간 접선"? 요소 요소는이 질문과 아무런 관련이없는 것 같습니다. 그러나 요인에 대한 적절한 질문을 게시하면 ;-) – Tommy

+0

좋습니다. 제안을 수락합니다. –

관련 문제