- 在线时间
- 27 小时
- 最后登录
- 2013-5-20
- 注册时间
- 2012-11-2
- 听众数
- 15
- 收听数
- 1
- 能力
- 0 分
- 体力
- 3870 点
- 威望
- 0 点
- 阅读权限
- 60
- 积分
- 1335
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 347
- 主题
- 320
- 精华
- 0
- 分享
- 0
- 好友
- 6
升级   33.5% TA的每日心情 | 奋斗 2013-6-15 16:58 |
|---|
签到天数: 24 天 [LV.4]偶尔看看III
 群组: 第四届数学中国美赛实 |
|
向量(vector) 1、seq():产生有规律的数列,间距省略时默认值为1。
. k( h7 ~' N1 }0 r4 C例1:seq(10, 20, 0.5)
8 X; S/ {! W7 b e例2:seq(0, by = 0.03, length = 15). c: R2 H& G( Q* @& s' {5 h
2 S; P+ ^' T% N5 J7 q7 f+ ]2、rep():产生有规律的数列,重复第一个变量若干次。
7 c- F7 W& ~' Z0 I) i9 D例1:rep(1:3, 1:3)
6 }/ ?% O8 j! B, Z例2:rep(1:3, rep(2, 3))
$ U6 ? D+ Q( q T例3:rep(1:3, length = 10)% G" O/ E9 O S0 ?
2 T1 _4 X! p8 s# d' D* P1 F* J3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
6 S% `$ D& j; C* Q' {0 y6 P1 q3 y例1:a <- 1:3; b <- 4:6; a * b; b^a# ]6 x C% W" z# G
例2:a <- 1:3; b <- 4:9; a * b; b^a
; Z3 k4 J+ x, R' R C; F( ~
& k; R- j) a# p3 N2 x! K4 S4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
* W: Z; @" ^9 K: f* \! H例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
$ A8 \+ S! K- r/ `% f例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]& N' h0 V& B+ ~
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
" z5 Y. \! t; p' i h' A例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA") W& m4 a Y# v7 G" y& g }
; v3 o9 Z- |: z
5、主要向量运算函数。
+ [5 X# X1 Z" D' j例1:xx <- c(2, 6, 10, 8, 4)
# ?1 ?6 v. T$ R3 ^sum(xx) #和
5 O! c# M% \8 D6 hmax(xx) #最大值
0 f$ }$ k8 y, ?min(xx) #最小值
" M1 z! O' Y3 W; ?- e; }9 rrange(xx) #取值范围
" l$ L% A1 `7 O6 W% b9 [mean(xx) #平均值
+ j8 f2 i, D, G2 Svar(xx) #方差: W& G- r" l( A
sort(xx) #从小到大排序' Q, n1 h( j6 y0 [
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
% s; ^4 Z0 Q- `1 ]rank(xx) #单元值大小顺序9 ^4 I# {; f) m( `. Q! I$ j+ v
prod(xx) #乘积,所以阶乘是prod(1:n)
( ^7 T' t$ w4 ]" v例2:x <- seq(1, 15, 2)+ p$ g4 I9 d" L1 K& d
append(x, 20:30, after = 5) #插入数据8 b7 f" ?; A7 W2 d* ~+ I
append(x, 20:30) #参数after缺省默认从向量的最后插入值2 M _" \1 O- A5 l' Y7 t
replace(x, c(2, 4, 6), -1) #替换函数5 E5 c3 P; C! m' O' T2 Z* ~2 O
例3:state.name
' i8 d/ n6 O+ F0 S) G8 Amatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数( q! I) Q4 P* Y8 U5 T1 @
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
" W( k3 L! u8 m$ X6 V+ Nstate.name[pmatch(c('Oh', 'Wy'), state.name)]# R/ P% c3 Z! T" r' c4 D. \
例4:yy <- -9:104 p* ]+ B: U* H+ Y- [/ `9 I
all(yy > 0) #判断所有9 ?( L3 F! P- n) x2 O* c
all(yy > -10)8 L4 I2 P) @6 l; u& O& T1 @& c" @
any(yy == 0) #判断部分
( G: @6 l% J; G5 ? T" `+ M; x+ lany(yy > 0)6 O& P5 K |6 J8 W% r
any(yy < -10)6 b: u2 ^6 n5 \5 z4 @
" k6 D2 O4 K% \8 t
# v5 s4 s4 P' s6 d; ^' o4 g, h4 J& P |
zan
|