- 在线时间
- 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。
+ G1 p+ t! K @7 R9 M1 U例1:seq(10, 20, 0.5)( t3 F. a( T: t6 Y9 e' e# c% w( V) X' V
例2:seq(0, by = 0.03, length = 15), y1 v e3 [* R2 J% J7 E- z4 q
" ?- X' G% p. J+ e" O) B* i2、rep():产生有规律的数列,重复第一个变量若干次。, X% I% f! Y+ z- m$ P
例1:rep(1:3, 1:3)4 u3 ^% I+ U3 v$ C
例2:rep(1:3, rep(2, 3))
" z, k8 m% c8 e$ v# d例3:rep(1:3, length = 10)( U7 _; Q- I1 t
5 K6 j5 [. L5 a
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。. P/ i- ]8 h- [
例1:a <- 1:3; b <- 4:6; a * b; b^a
: F' u1 D- w2 ]4 f! t例2:a <- 1:3; b <- 4:9; a * b; b^a
% ]+ i1 P5 E8 L* b! o
) F/ u4 @' m, ?. q4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
5 n. R1 `2 B2 d4 ]+ I N/ o例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
3 d$ J0 U( A$ y/ u2 j例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]( w' w# G% \' _/ o9 n
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
0 S$ k; j) k; X$ t# K例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"1 T% ~+ ?! V( N& H5 a: g8 m
/ C; m- D1 U! ^- E+ @& W2 h, g5、主要向量运算函数。& b$ Z* ?* U9 E; i
例1:xx <- c(2, 6, 10, 8, 4)
g1 @" o) b$ J& _- g5 C' {sum(xx) #和
) J: t" | T3 G |! \% @. H4 T& vmax(xx) #最大值
4 P! B$ `5 |5 I+ \& R- M) Lmin(xx) #最小值
" ]4 B. v4 C: Y3 g( d$ Frange(xx) #取值范围
( x7 J5 f# N# @# z" T2 d; }mean(xx) #平均值
1 F: r7 `! B& z" Gvar(xx) #方差" l* |2 w; @1 H
sort(xx) #从小到大排序
) y; w- {( s4 c0 Lrev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))5 k6 z- s- o: E* c. q3 v+ t
rank(xx) #单元值大小顺序9 T, k: x2 u Y
prod(xx) #乘积,所以阶乘是prod(1:n)) A( ~( w+ p* m/ S
例2:x <- seq(1, 15, 2)
( E0 Y( ^! F. P% |1 jappend(x, 20:30, after = 5) #插入数据7 s% }' n, e# y7 }
append(x, 20:30) #参数after缺省默认从向量的最后插入值/ p& w: c: \. X# N: X: g- k5 h0 g
replace(x, c(2, 4, 6), -1) #替换函数
! C6 L& o0 I& s, `- B, L例3:state.name
_5 k4 [$ t6 h& f* `1 L9 Nmatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数6 G3 ~) G3 ~2 y# A' Q
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
- G, M. m( S" L: L. Rstate.name[pmatch(c('Oh', 'Wy'), state.name)]9 y3 \, h1 l q. b: V/ ?, @0 Q1 S
例4:yy <- -9:10
3 I# f8 S) f6 f Xall(yy > 0) #判断所有% j: j: p+ T" `; t
all(yy > -10)4 B0 ~8 a; D0 u# z! \+ S
any(yy == 0) #判断部分+ ]1 U4 }! S: ~ D6 f! l
any(yy > 0)
- l' ]2 M2 V' R$ ~: O4 |: H5 _any(yy < -10)
: Z% M2 e1 y! w7 E
+ w; s2 `: X. ^! [5 H2 f2 \+ F! F
h2 u: f/ |2 D0 S$ f) g. g |
zan
|