2011-09-23 93 views
-4

的exsisting一個如何可以插入附加的值以散列在R.添加值的散列

h=hash() 
h[key1] = "value1" 
. ??? 
h[key1] = exsisting values + "value2" = c(values(h),"value2") 

一個exsisting鍵?

+2

想必你正在使用'hash'包,因爲'hash()'不是基R的一部分。如果是這種情況,你應該在你的問題中說明(例如使用'library(hash)')。另外,你有沒有閱讀'hash'軟件包手冊? – Andrie

+0

是否有一個選項可以將散列中的值與某個特徵字符分開? – Hans

回答

4

首先,說明爲什麼要首先使用hash可能很有用。標準R包含一個數據格式list,它也是一個關鍵值存儲。除非有特別需要使用不同的系統,否則帶有列表的系統已有詳細記錄,並且有許多有用的功能,如lapply,它們可能不適用於您的軟件包。

您似乎想要在C++中創建所謂的multimap。有沒有必要使用哈希值,你可以通過嵌套表如做到這一點:

h<-list() 
h[['key1']]<-list("value1") 
h[['key1']]<-list(unlist(h[['key1']]),'value2') 
str(h) 
List of 1 
$ key1:List of 2 
    ..$ : chr "value1" 
    ..$ : chr "value2" 

如果你的價值觀有你甚至都不需要嵌套列表相同的數據類型:

h<-list() 
h[['key1']]<-"value1" 
h[['key1']]<-c(h[['key1']],'value2') 
str(h) 
List of 1 
$ key1: chr [1:2] "value1" "value2"