- 在线时间
- 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; L, y& w9 V
例1:seq(10, 20, 0.5) M% A* J6 V+ {/ f" [9 u
例2:seq(0, by = 0.03, length = 15)
4 ]& |6 _. l1 k* z4 F" p
. N* V6 n! a; C' l2、rep():产生有规律的数列,重复第一个变量若干次。3 e* O& E I l9 }6 _% Z
例1:rep(1:3, 1:3)2 [7 H; s/ Q5 c ^" G7 P
例2:rep(1:3, rep(2, 3)) E, m% y2 ?2 S% @9 D. b5 z* z
例3:rep(1:3, length = 10)2 {# P/ \% T* A( }- i
. K3 |4 I& m9 M: j9 u. a( b# V
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
* p. s3 ^: b! }例1:a <- 1:3; b <- 4:6; a * b; b^a
) k. P2 X' y6 X' c# t8 r) V/ t例2:a <- 1:3; b <- 4:9; a * b; b^a7 o9 Y1 d9 V3 v( U" x5 A
! @* }0 v* x4 G$ {4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
" r8 |3 h1 E$ Y例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
1 }" U4 p; e1 r& X6 r* Q, J8 x4 `, _8 X例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
9 f* W- }0 j+ i0 d( d" C6 z例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
( M2 ^( x$ @. q, Q$ x例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
8 [/ n0 O) K) L8 M8 C$ O/ O! w' _" J
5、主要向量运算函数。3 v; Z+ N. x; Z2 n1 U" D
例1:xx <- c(2, 6, 10, 8, 4)
: t) W! a. o: a' I3 ^3 W$ ^sum(xx) #和
* |' o: ^5 U: cmax(xx) #最大值
6 H6 v3 ^! y! q, u* {min(xx) #最小值
* x5 P3 c p# O# ~5 Orange(xx) #取值范围
' R8 V2 h0 [; y& o. v. m$ Q. Q6 Smean(xx) #平均值/ D, k6 K* J6 i+ _& x
var(xx) #方差8 f" T1 }, m9 ^5 P c$ b: G. ?# u) {
sort(xx) #从小到大排序
5 X8 E J' m1 O7 l1 @1 _8 irev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
9 |6 [3 h; V) F- Wrank(xx) #单元值大小顺序
8 U9 |1 x# |8 Z9 U; r! mprod(xx) #乘积,所以阶乘是prod(1:n): o. K) T, Z, G
例2:x <- seq(1, 15, 2)
6 P0 X7 F2 C, w" _* l9 Fappend(x, 20:30, after = 5) #插入数据
$ z$ ^2 k- X: X6 i. Jappend(x, 20:30) #参数after缺省默认从向量的最后插入值1 \6 r: b Z% q
replace(x, c(2, 4, 6), -1) #替换函数( }# t1 W- ~3 ~# e8 I
例3:state.name
& V0 ?9 _$ J8 O, i3 ^/ Gmatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
, ^! T* }2 X1 Y) d/ h$ L9 `pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数2 m0 q3 z( I% \* y2 n# G0 ?
state.name[pmatch(c('Oh', 'Wy'), state.name)]
( p/ i2 I+ I# j$ u例4:yy <- -9:10. z* a- D+ }3 Q$ x& R' ]
all(yy > 0) #判断所有) [9 E) B4 f1 P) C+ U" M. a: f1 T3 T% z
all(yy > -10), _8 d# ?6 @' W0 v- p1 c7 h
any(yy == 0) #判断部分( ?' t; Q( Y+ A) G& ]) q- x
any(yy > 0)0 ]. Q' j. t j- ?( {2 h$ {
any(yy < -10)
8 D) r, a" p- X# y& t4 S! |1 P* h1 v8 y4 n+ b# w, X
" I/ n( H. w0 b |
zan
|