在线时间 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。
2 [1 }- r% }# ^ 例1:seq(10, 20, 0.5) * @3 m6 P* E, H- t
例2:seq(0, by = 0.03, length = 15)
* u( v; T# {! h% t5 B& u5 e& A / }4 Q9 g: W0 t% b' r
2、rep():产生有规律的数列,重复第一个变量若干次。 % K6 K! P8 [9 w5 J2 Y3 P
例1:rep(1:3, 1:3) . c: k. n+ ?" i1 |% c
例2:rep(1:3, rep(2, 3))
- c9 N; K& R" X0 z3 X7 z& { 例3:rep(1:3, length = 10) + ~0 b( ]/ }! X" O: _
3 o5 J, x& L. M7 _ 3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。 ! N( I \8 Y) j! K p% R
例1:a <- 1:3; b <- 4:6; a * b; b^a . q# O% z; x* b0 d7 _+ x
例2:a <- 1:3; b <- 4:9; a * b; b^a " [' m' O" `3 v, g
7 F; I2 V$ ^3 Y: o* y0 H+ N1 W { 4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
% H E2 Q6 V2 w3 p6 { 例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)] , P, m3 M. E1 s4 \
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
7 p( z4 y3 O% M7 e: m8 s. I 例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
# u) l6 f) H% Y7 ^) S4 ]6 I2 ] 例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
/ y+ H+ ] x2 ~) \* D : d7 V: l: i- ~; g
5、主要向量运算函数。 0 O( c! Y) \6 L/ a# ?6 `6 C# f6 a
例1:xx <- c(2, 6, 10, 8, 4) 6 n5 L& O' J/ R4 p1 k# ]
sum(xx) #和 % C( W0 p2 P: h! z
max(xx) #最大值 , P8 O9 E7 r+ I/ d1 [! j
min(xx) #最小值
/ w r( m7 ?0 x range(xx) #取值范围
, X- F8 `+ u. | X mean(xx) #平均值
& I% |, f% d* Q# x# k: j9 z$ I var(xx) #方差
" S# X; o: Q9 ^( o$ P$ I' T sort(xx) #从小到大排序 * N6 X5 Q' Z; i7 G. E ?0 l
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx)) + W" n k( X0 g# u8 G* Z
rank(xx) #单元值大小顺序
" e) ^+ S8 }" g7 R+ q prod(xx) #乘积,所以阶乘是prod(1:n)
5 j9 V- p" v7 s1 f 例2:x <- seq(1, 15, 2)
# ]4 @3 h: p0 u0 e6 o append(x, 20:30, after = 5) #插入数据 # T# S0 r% Z" v2 i
append(x, 20:30) #参数after缺省默认从向量的最后插入值 ) a3 _8 a/ T& L: y
replace(x, c(2, 4, 6), -1) #替换函数
4 W$ M/ \- S8 A) v1 f 例3:state.name ; Z1 e. z+ b9 V8 Z
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
+ F' Q( S1 G# x! Q pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
! n% u) A! j$ M7 n0 C1 } state.name[pmatch(c('Oh', 'Wy'), state.name)] 1 H: D( y% ]3 i- C- y: y7 M& j
例4:yy <- -9:10
) z' X2 k( L/ N7 ^* D' i( N4 x2 A a all(yy > 0) #判断所有 3 F0 W% i. g8 J6 u/ s+ @
all(yy > -10) 1 ~0 @, y8 O; [+ u
any(yy == 0) #判断部分
3 O: p' J6 ^, L# O3 L ^& Q; a- C any(yy > 0)
2 f U' m8 p H& Y any(yy < -10)
. k @2 q6 i# h: l
: h: g; W, i" {) o% A8 U0 {8 m
2 z& l8 q2 _0 P5 v T2 ^$ M
zan