- 在线时间
- 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。1 D; @- E) w8 `0 d6 M
例1:seq(10, 20, 0.5) z- O& ~% e. D; ~
例2:seq(0, by = 0.03, length = 15)
4 ?. ~, v' f2 P5 L) l4 B) h) l- f5 e: J3 H# R4 n
2、rep():产生有规律的数列,重复第一个变量若干次。
( H1 }5 U/ E8 x例1:rep(1:3, 1:3): U+ Z+ M) c, F/ Q/ z8 x7 h- F# V
例2:rep(1:3, rep(2, 3))4 b# }/ D8 S" J# I
例3:rep(1:3, length = 10)1 X& g# R2 g" D2 r. Q+ s( T+ ]
' p4 L3 L) }# z( D& G1 B! D) X; P* J% X
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
. O. J& B3 x- Z例1:a <- 1:3; b <- 4:6; a * b; b^a
, E! p6 d' C+ V. n z例2:a <- 1:3; b <- 4:9; a * b; b^a
3 e5 m+ \& h- ~9 Q; v3 Y; {- o: x5 l, T8 N: N6 L0 J
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。2 R! n( M+ o+ U6 r9 b! J
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]- h% C) u+ O2 q& B: ?5 {4 y* X8 O
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
6 {7 J: X6 \' K# t" q6 W3 w例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
7 N6 G( l) V3 K! t L2 \( @3 ~例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"' d, U6 d- _1 c4 s! ]+ \* ~- E- `
; S& ? A6 i$ C$ j7 i/ V
5、主要向量运算函数。
s9 W4 X5 E. k& y9 ]例1:xx <- c(2, 6, 10, 8, 4)
6 O/ A A+ F: vsum(xx) #和) X- L h3 ~! H3 X
max(xx) #最大值
M$ L9 Q" [+ I9 B' U/ z4 [9 H% omin(xx) #最小值
$ M! T4 ]# g, v% m: O8 F0 _$ Hrange(xx) #取值范围' N6 b* \8 o4 W/ d% B( J
mean(xx) #平均值
# n# p) o+ G4 Uvar(xx) #方差
+ l; W6 q7 F; \( _: gsort(xx) #从小到大排序
! K0 o( x( }& I, Y+ frev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))% H& x$ n& }5 k3 J
rank(xx) #单元值大小顺序
5 v; b& Z! l/ q7 o- i5 aprod(xx) #乘积,所以阶乘是prod(1:n)7 A& U: g: l" G6 a! n! X! n
例2:x <- seq(1, 15, 2)# h* Y' J$ l4 D$ A/ H% T
append(x, 20:30, after = 5) #插入数据
" z# F7 J8 D3 j& Q4 x2 Aappend(x, 20:30) #参数after缺省默认从向量的最后插入值
% A6 M, {! O$ |$ j" Rreplace(x, c(2, 4, 6), -1) #替换函数
2 N9 H. z" k% P! f' z1 m+ G例3:state.name
7 Y/ o# F+ W! G( ?+ N, S3 E5 mmatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数 U+ s# K: W6 V' }: w
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数- E4 h8 R8 H1 E- E0 B8 C0 f
state.name[pmatch(c('Oh', 'Wy'), state.name)]/ r: ]5 w) G" N; j5 L* E
例4:yy <- -9:10, n$ K% l6 `8 _ e
all(yy > 0) #判断所有
6 t; G- Q7 [1 R7 f" ]all(yy > -10)
* n* c# ~/ b3 E/ N7 wany(yy == 0) #判断部分
- w8 M0 e6 T/ nany(yy > 0)! t' K- T F5 O
any(yy < -10)
$ y$ f" O+ J. |5 l: Z/ t/ Y: ~- z. N# y& j3 u: x5 S& R
% M% {$ }( q z0 P/ o |
zan
|