全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2860 2
2012-08-05
最近使用R处理数据表,涉及访问data.frame中变量的问题,现总结一些相关方法,提出共享参考。

比如: 一个含11个变量的数据框da
  z01 z02 z03
1 367 161  84
2 320 130  74
3 547 228 112
4 450 215  95
5 446 185  99
6 417 206  98
7 396 183  92
8 430 186 102

访问da中第一个变量z01, 有几种可能的方法                                 
(1)用 双中括号+变量名加引号 访问 ,即da[[“z01”]],将得到一个类型为向量的访问结果,这种方式较正规,可以实现“宏替换”方式访问,如下所示
> da[['z01']]
[1] 367 320 547 450 446 417 396 430

实现“宏替换”访问如下
> aa='z01'
> da[[aa]]
[1] 367 320 547 450 446 417 396 430

方法1的变形是da[[1]],但不能实现“宏替换”。

(2)用 $+变量名 访问,即da$z01。变量名不加引号,访问结果与(1)相同,即得到一个向量。这种方式简便明了,但不能宏替换。
> da$z01
[1] 367 320 547 450 446 417 396 430

(3)用 单引号+双下标 访问,即da[,1],得到与(1)相同的结果。

> da[,1]
[1] 367 320 547 450 446 417 396 430

(4)用 单引号+单下标 访问,即da[1],得了z01这个分量,与前面几种访问方式不同的是,这种访问方式得到的数据类型为data.frame。这种方式的变形是da[‘z01’],得到相同的结果。
> da[1]
  z01
1 367
2 320
3 547
4 450
5 446
6 417
7 396
8 430

在上面几种方法的基础上还可以组合出其它方法,结合attach()还可以使访问更方便。我的使用习惯是,编程中常使用方式1,因为它为动态访问数据框中的变量提供了方便,交互环境中常用方式2。上面的变量访问方式也同样适用于列表类型。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-8-5 12:43:42
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-10-9 19:03:06
非常感谢分享~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群