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

R学习日记----expand.grid()函数

(2013-08-09 08:40:46)
标签:

r语言

expand.grid()

函数

数据框

r语言经典入门

it

  今天在看《R语言经典入门》,当看到expand.grid()时,就产生了疑问。
书中的示例是这样的:
========================================
> expand.grid(c=c(5,8),x=c(100,200),sex=c("F","M"))
  c   x sex
1 5 100   F
2 8 100   F
3 5 200   F
4 8 200   F
5 5 100   M
6 8 100   M
7 5 200   M
8 8 200   M
========================================

看到这个时候就产生疑问:为什么定义了三个向量,每个向量两个数据,而组合在一起却产生了
共8行的三个字段的数据?
查了资料,没有。看help,没有。
最后想了半天,可能是这个原因。expand.grid()函数产生的数据框中的数据行数的多少是根据初始定义的
各个向量中的数据个数的乘积决定的。按照上面的例子来说就是2*2*2=8共8行数据。
到这里,就找了其他的例子来验证,示例如下:
============================================
> expand.grid(height = seq(60, 80, 5), weight = seq(100, 300, 50),sex = c("Male","Female"))
   height weight    sex
1      60    100   Male
2      65    100   Male
3      70    100   Male
4      75    100   Male
5      80    100   Male
6      60    150   Male
7      65    150   Male
8      70    150   Male
9      75    150   Male
10     80    150   Male
11     60    200   Male
12     65    200   Male
13     70    200   Male
14     75    200   Male
15     80    200   Male
16     60    250   Male
17     65    250   Male
18     70    250   Male
19     75    250   Male
20     80    250   Male
21     60    300   Male
22     65    300   Male
23     70    300   Male
24     75    300   Male
25     80    300   Male
26     60    100 Female
27     65    100 Female
28     70    100 Female
29     75    100 Female
30     80    100 Female
31     60    150 Female
32     65    150 Female
33     70    150 Female
34     75    150 Female
35     80    150 Female
36     60    200 Female
37     65    200 Female
38     70    200 Female
39     75    200 Female
40     80    200 Female
41     60    250 Female
42     65    250 Female
43     70    250 Female
44     75    250 Female
45     80    250 Female
46     60    300 Female
47     65    300 Female
48     70    300 Female
49     75    300 Female
50     80    300 Female
====================================================================
数据框行数结果=5*5*2=50

0

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

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

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

新浪公司 版权所有