- 在线时间
- 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。
/ ^+ n1 ~, j" k+ ]8 e例1:seq(10, 20, 0.5), l- P, Y" j1 m: I
例2:seq(0, by = 0.03, length = 15)9 m% z+ D0 b5 y. K6 h8 V" k. n
/ N8 `2 m: u' u& c: @1 w: n2、rep():产生有规律的数列,重复第一个变量若干次。( V' e2 X9 @/ O8 M& W
例1:rep(1:3, 1:3)4 _# I- t6 S7 J4 W* _( b
例2:rep(1:3, rep(2, 3))
, o7 n0 t, P; t) x例3:rep(1:3, length = 10)' B6 h6 ]# p( |+ G9 t
: \( F/ x0 F8 J' w% S% m+ |
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
6 \( B& v" j" J$ o7 W' K$ l例1:a <- 1:3; b <- 4:6; a * b; b^a
{# P# k- x8 p. j1 k, z例2:a <- 1:3; b <- 4:9; a * b; b^a0 B Z# d5 ]( t! D& o, S c& s- j4 K1 D
2 M. n0 O; i4 {/ F) _8 X
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。" a) b. z7 ?+ u# g
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
$ M4 d' u8 }. G% ^. z. m例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
$ e" U9 g8 _% W* I1 b* s K例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]# c5 ~; C b+ t3 A# K
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
8 O) m- Q9 T2 W1 l4 w Z9 i# R% Y8 B# C! E7 _
5、主要向量运算函数。
) ?) u& Z9 W# i: D例1:xx <- c(2, 6, 10, 8, 4)0 h3 f* y! k) v7 Q# a! T c
sum(xx) #和
6 b# t+ R* ~4 Hmax(xx) #最大值4 Z+ y6 ]- y% F* s
min(xx) #最小值
6 ^3 A1 Y: m- i3 n, krange(xx) #取值范围
) b# r5 E/ R% ^7 {* X7 G' i. p. Xmean(xx) #平均值
8 A: i3 F; r# }( @var(xx) #方差
( H G& E( Z; Q* R$ j1 F- e# r% l6 n5 usort(xx) #从小到大排序& \7 q8 Z( ?3 |. t
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
* h2 S, h, e, b8 S4 ?* `# O% Irank(xx) #单元值大小顺序3 t% f8 B3 Q. V! \, c b* X3 u
prod(xx) #乘积,所以阶乘是prod(1:n)3 ` Z* m X2 b* n) `
例2:x <- seq(1, 15, 2). R+ R8 B) y9 i$ A( y7 I0 c. z" p& [
append(x, 20:30, after = 5) #插入数据# B$ j5 X, ~6 C4 {! K1 |/ Z
append(x, 20:30) #参数after缺省默认从向量的最后插入值
. D7 y2 P' H, t9 A. |+ {0 M/ Mreplace(x, c(2, 4, 6), -1) #替换函数3 T9 c5 [! p6 C% E7 N* ]2 t
例3:state.name3 w5 A \' P% K; q" l% Z
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
5 ^3 M, u- G2 f' B1 kpmatch(c('Oh', 'Wy'), state.name) #部分匹配函数6 ^7 \1 |. S' K3 j9 d6 K% k
state.name[pmatch(c('Oh', 'Wy'), state.name)]
2 a+ j! f! h7 t9 h' ?例4:yy <- -9:10! t, }; Y% e( R- U
all(yy > 0) #判断所有
1 k# F+ |9 ~8 Iall(yy > -10)
1 ] ?" m8 H' M0 y, l; o) Eany(yy == 0) #判断部分- K- r, o, [4 T; S
any(yy > 0)
2 \+ S: M6 ?, a0 dany(yy < -10)
7 c( ?; W1 [! L& k. n$ P' i
" m4 U- L0 a* |) l
/ `' p2 k3 h& a8 \" W0 O1 x |
zan
|