简要背景:广泛使用的许多(大多数)当代编程语言至less有less数ADT [抽象数据types]是相同的,特别是, string (由字符组成的序列) 列表 (一个有序的值集合)和 基于地图的types (将键映射到值的无序数组) 在R编程语言中,前两个分别作为character和vector来实现。 当我开始学习R时,几乎从一开始就有两件事是明显的: list是R中最重要的数据types(因为它是R data.frame的父类),其次,我不明白它们是如何工作,至less不够好,在我的代码中正确使用它们。 首先,在我看来,R的list数据types是ADT(Python中的dictionary ,Objective C中的NSMutableDictionary ,Perl和Ruby中的hash ,Javascript中的object literal量等等)的直接实现。 例如,通过将键值对传递给构造函数(在Python中不是list ),可以像创buildPython字典一样创build它们: x = list("ev1"=10, "ev2"=15, "rv"="Group 1") 你可以像访问Python字典那样访问R列表的项目,例如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 […]