简要背景:广泛使用的许多(大多数?)当代编程语言至少有一些共同的ADT [抽象数据类型],特别是
string(由字符组成的序列)
list(有序的值集合),和
基于地图的类型(将键映射到值的无序数组)
在R编程语言中,前两个分别实现为character和vector.
当我开始学习R时,几乎从一开始就有两件事是显而易见的:list是R中最重要的数据类型(因为它是R的父类data.frame),其次,我无法理解它们是如何工作的,至少不能很好地在我的代码中正确使用它们.
首先,在我看来,R的list数据类型是地图ADT的简单实现(dictionary在Python中,NSMutableDictionary在Objective C中,hash在Perl和Ruby中,object literal在Javascript中,等等).
例如,您可以像创建Python字典一样创建它们,方法是将键值对传递给构造函数(在Python中dict不是这样list):
x = list("ev1"=10, "ev2"=15, "rv"="Group 1")
Run Code Online (Sandbox Code Playgroud)
并且您可以像访问Python字典那样访问R List的项目,例如x['ev1'].同样,您可以通过以下方式仅检索"键"或仅检索"值":
names(x) # fetch just the 'keys' of an R list
# [1] "ev1" "ev2" "rv"
unlist(x) # fetch just the 'values' of an R list
# ev1 ev2 rv
# …Run Code Online (Sandbox Code Playgroud) 为了分享R的一些提示和技巧,你最有用的功能或技巧是什么?聪明的矢量化?数据输入/输出?可视化和图形?统计分析?特殊功能?互动环境本身?
每个帖子一个项目,我们将看看我们是否通过投票获得了胜利者.
[编辑2008年8月25日]:所以一周后,似乎简单str()赢得了民意调查.因为我想自己推荐一个,这是一个容易接受的答案.
我有一个小问题:我在R中找不到字典数据结构,所以我使用了list而不是(比如"word" - > number)所以,现在我有问题如何获取键列表.有人知道吗?