R语言如何表示键值对

Python011

R语言如何表示键值对,第1张

你就是在说哈希表吧,python中的dictionary,c++里的unordered map.

有包的,就叫hash,具体用法:

首先安装hash包,library()一下做好准备。

# 两句一样效果,键是26个小写英文字母,对应的值是1到26

h <- hash( keys=letters, values=1:26 )

h <- hash( letters, 1:26 )

# 读取方法三种

h$a

h[ "foo" ]

h[[ "foo" ]]

# 插入键值

h$foo <- "bar"

# 删除变量h

clear(h)

rm(h)

R中的列表类似于Python中的字典(dictionary)或者Peal中的哈希(hash),但又有差别。其实R有一个叫做hash的包,可以实现与Python中的dic及Perl中的hash相同的功能。

R中的list与Python中dictionary的区别:

虽然看起来有点像,但R中的list与Python中的字典还是有很大差别的,主要体现在下面几个方面:

3.1 可以没有键名

hase是键值对,必须有键名,但R的list可以没有键名,默认键名为[[n]],n为元素所在位置。

3.2 有序,且允许键值重复

这应该是R的list与Python中的dictionary最大的区别了。Peal中的hash及Python中dic的最大特点就是无序且键值唯一,这样在牺牲有序性的情况下保证了数据存取的高效性。但R中的list这两方面都不满足。其性能与hash及dic应该也有差别吧(没比较过)。