2015-02-07 3 views
0

Python의 사전 동작을 복제하기 위해 R에서 hash 패키지를 사용하려고합니다. 나는Python dict와 같이 R의 해시 env 내 list-within-a-list에 액세스하는 방법

library(hash) 
titles = hash(NAME = list("exact"=list('NAME','Age'), "partial"=list()), 
       Dt = list("exact"=list('Dt'), "partial"=list()), 
       CC = list("exact"=list(), "partial"=list())) 

나는 values(titles['Name'])를 사용하여 특정 키, values(titles)를 사용하여 값 keys(titles)를 사용하여 해시 키를 액세스 및 액세스 값을 수 있습니다, 이런 식으로 만들었습니다.

하지만 어떻게 내부 목록의 요소에 액세스 할 수 있습니까? 예 : list('NAME','Age')? 이름에 기반하여 요소에 액세스해야합니다 (이 경우 "정확한"). 그렇지 않으면이 요소가 속한 외부 목록의 요소 ("정확한"또는 "부분적인")를 알아야합니다.

+3

'titles $ NAME $ exact; titles $ Dt $ exact; titles $ CC $ exact' 만약 당신이 정말로 끔찍한 파이썬 구문을 R에 가져올 필요가 있다면'titles [[ "NAME"]] [[ "exact"]]'. 'list's :'titles <- list (NAME = list (exact = list ('NAME', 'Age'), partial = list()와 같은 일을 할 수 있습니다.), Dt = list (정확한 = 목록 ('Dt'), 부분 = 목록()))' – hrbrmstr

+0

감사합니다. 그거야. :) 그런데, 나는 키/값 쌍 개념을리스트에서 사용하는 방법을 잘 모르겠다. 그래서 파이썬에서 사전 개념을 복제하는 해시를 선호한다. – jeevag

+0

@jeevag 당신은 명확하지 않습니다. 어떻게 파이썬 DICT에 접근하는 것과 다른 점이 있습니까? 무슨 일이야? 특정 코드 예제를 제공하십시오. – smci

답변

0

간단히 :

titles[["NAME"]][["exact"]] 

hrbmstr가 쓴. 이 점에 관해서 특별한 것은 없습니다.

중첩 목록에서 "exact"및 "partial"은 단순히 두 개의 문자열 키입니다. 다시 말하지만, 그들의 이름에는 특별한 마법의 의미가 없습니다.

또한 실제로 이것은 적절한 R 구문 (특히 키가 가변적 인 경우)이 권장되며, "끔찍한 파이썬 구문을 가져 오지"않습니다.