2016-02-22 56 views
0

詞典的按鍵我創建了一個字典是這樣訪問R中

dict = new.env() 
key <- "test" 
dict$key <- 20 

但是,當我想字典的關鍵,我這樣做

print(ls(dict)) 

但什麼是返回是「關鍵「而不是」測試「。

我試着這樣做,以及

dict[["key"]] <- 20 

,但我得到了相同的結果。那麼我怎樣才能訪問我的字典的鍵?

+0

'key'沒有出現在你沒有放入的環境中。嘗試'print(key)'看看''test''還在那裏。 –

+0

的確是它的實際關鍵。請原諒我的無知,我該怎麼說呢?它不是字典$ key <-value或dict [[「key」]] ???? – user3841581

回答

2

您可以使用環境或列表作爲詞典(個人而言,我更喜歡後者),以這樣的方式

### using environment as dictionary 
dict <- new.env() 
dict[["key 1"]] <- 20 
dict[["key 2"]] <- "ABC" 

# let's see the keys: 
ls(envir = dict) 
# access by name: 
dict[["key 1"]] 
dict[["key 2"]] 


### using list as dictionary 
dict <- list() 
dict[["key 1"]] <- 20 
dict[["key 2"]] <- "ABC" 

# let's see the keys: 
names(dict) 
# access by name: 
dict[["key 1"]] 
dict[["key 2"]] 

# of course, in both case you can use a character variable to define the key, e.g. : 
myKey <- "key 3" 
dict[[myKey]] <- 123 
print(dict[[myKey]]) 
# > [1] 123 
+0

它的工作原理。謝謝 – user3841581

+0

但是現在如果我使用第二種情況,現在是否像列表一樣迭代它?我的意思是遍歷所有密鑰 – user3841581

+0

我不確切知道你需要什麼,但是例如你可以使用循環'for(n in names(dict))print(dict [[n]])'來迭代所有的值, – digEmAll

1

我想創建這樣一個字典:

> dict<-c(1:20) 
> names(dict)<-letters[1:20] 
> dict 
a b c d e f g h i j k l m n o p q r s t 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
> dict["t"] 
t 
20