对数据取子集的方式和使用的符号。
1、单括号 []
- 一般来说,[]取子集后返回的对象和原来对象的属性相同(原来是列表,返回子集为列表,原来是数据框,返回的是数据框),除矩阵matrix外。
- 可用来提取多个对象
2、双括号 [[ ]]
- 用来提取list或者dataframe中的元素,仅可以用来提取一个单个元素
- 返回的对象并不一定和原list或者dataframe类型相同
3、美元符号 $
- 提取list或者dataframe中的某个元素,需要有名字
- 返回的对象和[[ ]]一样,类型很可能和原来不同
#example, creat a list name "x"
> x <- list(foo = 1:4, bar = 0.6, foo1 = 3:6)
> x
$foo
[1] 1 2 3 4
$bar
[1] 0.6
$foo1
[1] 3 4 5 6
#双括号取子集,返回向量的对象
> x[["foo"]]
[1] 1 2 3 4
# $美元符号取子集, 返回类型不同,和双括号一致
> x$foo
[1] 1 2 3 4
# 单括号取子集,返回类型和原来一样,是一个list
> x["foo"]
$foo
[1] 1 2 3 4
# 单括号提取多个对象
> x[1,3] #错误的取法,注意提取多个对象的方式
Error in x[1, 3] : incorrect number of dimensions
# 正确的方式
> x[c(1,3)]
$foo
[1] 1 2 3 4
$