- 在线时间
- 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; x$ ^# G/ C+ D: t# T P2 m( d! w
例1:seq(10, 20, 0.5)
, F% h F, c( ?4 @3 e7 z8 C2 b( w例2:seq(0, by = 0.03, length = 15)1 P1 |: F: i7 d5 m, k
: z* E/ D: r0 Q1 X7 F/ v" q+ Z2、rep():产生有规律的数列,重复第一个变量若干次。' X, M7 w" Q' g4 `$ D- R. j, U
例1:rep(1:3, 1:3)
, {* Q: t: Z/ N) G! ?7 \例2:rep(1:3, rep(2, 3))7 J; i8 |1 d) L# W3 d) @5 X
例3:rep(1:3, length = 10)
" S( E& A+ q5 \& k/ y/ F- |. }- B; F+ g; }2 V8 K4 @8 J
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
7 z1 ]5 y4 v0 J/ D* a8 y7 |例1:a <- 1:3; b <- 4:6; a * b; b^a
, a2 `) J% b5 o& I例2:a <- 1:3; b <- 4:9; a * b; b^a
, W: E- q. j- I! h' j: M
$ K0 t8 O" H5 w4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。, S1 ~! ^2 q* s1 w
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
3 g) y( v. v2 D, u g例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]' G2 M3 R/ R2 x; x" z7 s' A; {/ c5 [
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
" V6 B4 L) b* T5 }+ X3 C例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
9 H* m9 x# x: d$ J( G
B/ q! I& v8 W# |7 Q5、主要向量运算函数。
# j" a- W' I" i+ S) C) h$ N, t例1:xx <- c(2, 6, 10, 8, 4)
8 x% b+ b! j) g. W1 y" t) ssum(xx) #和
) n& ]$ W f: ?. b& z0 a' H) d/ qmax(xx) #最大值
9 ~) L( g6 }* A- Xmin(xx) #最小值+ h7 ~4 i/ w! J! ?7 _
range(xx) #取值范围- _$ b0 J- m+ p4 v! z- `% o
mean(xx) #平均值
; }! r8 E! q$ B& t! qvar(xx) #方差# a* z: k1 T) @, [; c1 A
sort(xx) #从小到大排序
/ }- L+ a) r8 d' m: ^rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
' p! |$ W2 N$ Irank(xx) #单元值大小顺序; a; u* y5 k0 q6 K3 t# G
prod(xx) #乘积,所以阶乘是prod(1:n)$ [% e# C7 ^- F" ]* f$ D
例2:x <- seq(1, 15, 2)2 y# ~ M+ A" a( r
append(x, 20:30, after = 5) #插入数据" m0 p- ^ p7 H2 q3 u
append(x, 20:30) #参数after缺省默认从向量的最后插入值0 m* v e4 _+ R) x; Y$ I& r
replace(x, c(2, 4, 6), -1) #替换函数
7 b+ J# W) m3 t例3:state.name* P! Z0 b: }3 _' T8 h
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数* B. s5 e+ J$ C
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数, F/ [" K1 U: _$ d
state.name[pmatch(c('Oh', 'Wy'), state.name)]" `" h. i! E& v$ \ `. b! e
例4:yy <- -9:105 }5 ?' z, h8 Z2 _3 U" G8 z
all(yy > 0) #判断所有3 z3 b( p* r! K K$ j( ?9 j# x
all(yy > -10)+ o# z% L4 t7 u; b* |* t
any(yy == 0) #判断部分' O; ^* Q( W, A
any(yy > 0)
) Y$ f5 `2 q7 O' p. [any(yy < -10)
3 j. y- Q$ D- n
) a* s# N# D B+ U7 U2 j" d% |+ `& a6 R
|
zan
|