当前位置: 首页 > 编程学习 > 其它语言 > R语言 > 正文

R语言学习笔记(六) 列表及数据框的访问

2018-04-22 来源:博客园/嘻呵呵

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