02.07.2013 Views

现代统计图形 - 科学网—博客

现代统计图形 - 科学网—博客

现代统计图形 - 科学网—博客

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A.1 对象类型 151<br />

1 > length(y)<br />

[1] 5<br />

我们还可以用names()给向量的每一个元素命名:<br />

1 > names(x) = LETTERS[1:length(x)]<br />

2 > x<br />

A B C D<br />

7.11 9.11 9.19 1.23<br />

对于有名称的向量,我们可以用名称提取向量的元素(获取数据子集<br />

的方式通常有三种:整数下标、子对象名称以及逻辑值):<br />

1 > x[c("B", "A")]<br />

B A<br />

9.11 7.11<br />

1 > sort(x)<br />

函数sort()可以对向量排序(顺序或倒序):<br />

D A B C<br />

1.23 7.11 9.11 9.19<br />

因为很多统计量的计算是针对一维数据的,所以用向量操作起来会非<br />

常方便,例如计算样本方差 n<br />

i=1 (xi − ¯x) 2 /(n − 1):<br />

1 > sum((x - mean(x))^2)/(length(x) - 1)<br />

[1] 14.03<br />

1 > # 自带函数var()作为对比<br />

2 > var(x)<br />

[1] 14.03<br />

当然R提供了现成的方差函数var(),我们不必将代码写得那么复杂,从<br />

上面的输出可以看出,直接根据公式写的代码和方差函数计算的结果是一<br />

样的。另外,向量操作可以节省显式循环的使用,如果在C语言或VB等其<br />

它程序语言中,我们只能使用几段循环来计算方差数值,因为其中涉及到<br />

两个求和函数。<br />

使用函数seq()和rep()可以生成规则的序列,前者提供了等差数列的功<br />

能,后者可以将向量或元素重复多次从而生成新的向量,如:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!