List

R语言中各组件的名称叫做标签(tags),访问列表有3种方法:

  • j$salary 通过标签名字访问,只要不引起歧义,可以只写出前几个字母。
  • j[['sal']] 夹在两个中括号时引号里的标签名字要写全。
  • j[[2]] 亦可以通过在列表中的位置访问。

这三种方法得到的都是对应组件内容的类型。
如果只加一个中括号,得到的是组件,类型为向量。

  • 需要注意的是 [ ] 可以提取多个组件,但 [[ ]] 一次只能提取列表的一个组件内容。
> j <- list(name = 'Joe', salary = 5500, union = T)
> j$salary
[1] 5500
> j$sal
[1] 5500
> j[['sal']]
NULL
> j[['salary']]
[1] 5500
> j[[2]]
[1] 5500
> j[2]
$salary
[1] 5500

> j[1:2]
$name
[1] "Joe"

$salary
[1] 5500

> j[[1:2]]
Error in j[[1:2]] : subscript out of bounds

Dataframe

数据框的访问的用法与列表相似,可以把数据框看作由多个长度相同的列表组成的,所以访问方法同样适用。

> d
  kids ages
1 Jack   12
2 Jill   10
> d$ki
[1] "Jack" "Jill"
> d$kids
[1] "Jack" "Jill"
> d[['kid']]
NULL
> d[['kids']]
[1] "Jack" "Jill"
> d[[1]]
[1] "Jack" "Jill"
> d[1]
  kids
1 Jack
2 Jill
> d[,1]
[1] "Jack" "Jill"
  • 注意 [[ ]] 虽然只能提取一个列表的内容,但是 [[2: 3]] 表示取第二个列表中第三个元素。
    (可以把它看作先取第一层,再取第二层。)
> d[[1:2]]
[1] "Jill"
> d[[2:1]]
[1] 12
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!