R——List
2017-12-21 本文已影响13人
鸡仔说
List
可以把list看做是可以包含不同类型元素的向量
给以下这个例子做说明,以下df这个list包含n, a, m三个向量的副本。并且包含一个整型数值666。
n <- c("Jane", "Tom", "Jack")
a <- c(23, 24, 22)
m <- c("F", "M", "M")
df <- list(n, a, m, 666)
print一下看看
>print(df)
>>>
[[1]]
[1] "Jane" "Tom" "Jack"
[[2]]
[1] 23 24 22
[[3]]
[1] "F" "M" "M"
[[4]]
[1] 666
输出的东西很奇怪,我们知道,python中的list是[1, 2, 3]
这种样式的,这里面R和python不同,可以理解为它做了嵌套的list,比如我们可以通过输出第一个元素,看下它的类型
>print(class[df[1]])
>>>
[1] "list"
得到结果为list,说明我们的结论没有问题
那么,如何取得list中的元素呢?R给的方案是双框号[[index]]
,我们比如我们要获得n那一列。可以这么操作
>print(df[[1]]) # 提取第一列
>>>[1] "Jane" "Tom" "Jack"
因此,再检查一下它的类型
>print(class(df[[1]]))
>>>[1] "character"
没问题,基本的向量类型,你可能会疑问,明明是character类型啊?其实不是这样的,R当中,是不存在简单数据(数值型、逻辑型、字符型等),它只会默认把它们看作是长度为多少的向量类型,可以打印一下长度看下
>print(length(df[[2]]))
>>>[1] 3
长度为3的向量。