加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

R语言中order()用法原理

(2015-05-18 19:17:26)
标签:

杂谈

 

R数据可视化手册》第39页里的一段代码,表示对tophit中的lgavg进行排序,如下所示:

nameorder <- tophit$name[order(tophit$lg,tophit$avg)],对其中的order()用法不太理解,在此理解一下。

tophit中的部分数据如下:

表格 1部分原始数据

No

name

lg

avg

1

Larry Walker

NL

0.3501

2

Ichiro Suzuki

AL

0.3497

3

Jason Giambi

AL

0.3423

4

Roberto Alomar

AL

0.3357

5

Todd Helton

NL

0.3356

6

Moises Alou

NL

0.3314

7

Lance Berkman

NL

0.331

8

Bret Boone

AL

0.3307

9

Frank Catalanotto

AL

0.3305

10

Chipper Jones

NL

0.3304

11

Albert Pujols

NL

0.3288

12

Barry Bonds

NL

0.3277

13

Sammy Sosa

NL

0.3276

14

Juan Pierre

NL

0.3274

15

Juan Gonzalez

AL

0.3252

16

Luis Gonzalez

NL

0.3251

17

Rich Aurilia

NL

0.3239

18

Paul Lo Duca

NL

0.3196

19

Jose Vidro

NL

0.3189

20

Alex Rodriguez

AL

0.318

21

Cliff Floyd

NL

0.3171

22

Shannon Stewart

AL

0.3156

23

Jeff Cirillo

NL

0.3125

24

Jeff Conine

AL

0.3111

25

Derek Jeter

AL

0.3111

 

order(tophit$lg,tophit$avg)的意思就是,对tophit中的name进行排序,其中以"lg""avg"为关键词。原理与Excel中的排序一样,即以"lg"为主要关键词,以"avg"为次要关键词(Excel中以升序进行排序),排序结果如下所示。nameorderR语言中的排序结果如下所示,与Excel中的结果一致(R语言中默认为升序排列)。

 

表格 2Excel与R中的排序结果

No

name

lg

avg

R语言排序结果:

24

Jeff Conine

AL

0.3111

Jeff Conine

25

Derek Jeter

AL

0.3111

Derek Jeter

22

Shannon Stewart

AL

0.3156

Shannon Stewart

20

Alex Rodriguez

AL

0.318

Alex Rodriguez

15

Juan Gonzalez

AL

0.3252

Juan Gonzalez

9

Frank Catalanotto

AL

0.3305

Frank Catalanotto

8

Bret Boone

AL

0.3307

Bret Boone

4

Roberto Alomar

AL

0.3357

Roberto Alomar

3

Jason Giambi

AL

0.3423

Jason Giambi

2

Ichiro Suzuki

AL

0.3497

Ichiro Suzuki

23

Jeff Cirillo

NL

0.3125

Jeff Cirillo

21

Cliff Floyd

NL

0.3171

Cliff Floyd

19

Jose Vidro

NL

0.3189

Jose Vidro

18

Paul Lo Duca

NL

0.3196

Paul Lo Duca

17

Rich Aurilia

NL

0.3239

Rich Aurilia

16

Luis Gonzalez

NL

0.3251

Luis Gonzalez

14

Juan Pierre

NL

0.3274

Juan Pierre

13

Sammy Sosa

NL

0.3276

Sammy Sosa

12

Barry Bonds

NL

0.3277

Barry Bonds

11

Albert Pujols

NL

0.3288

Albert Pujols

10

Chipper Jones

NL

0.3304

Chipper Jones

7

Lance Berkman

NL

0.331

Lance Berkman

6

Moises Alou

NL

0.3314

Moises Alou

5

Todd Helton

NL

0.3356

Todd Helton

1

Larry Walker

NL

0.3501

Larry Walker

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有