- 在线时间
- 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。
( l' p& w0 V# U2 u例1:seq(10, 20, 0.5)
4 ~- t; C/ i( Y$ G例2:seq(0, by = 0.03, length = 15)7 s: B4 H& ]" S
, Q6 z. u y- } R0 s) V2、rep():产生有规律的数列,重复第一个变量若干次。
" ~, I; Q {" u/ f例1:rep(1:3, 1:3)5 H/ P* q; A# K4 A' [( T
例2:rep(1:3, rep(2, 3))
, P7 X' A* }1 s- W! }6 h2 o* x例3:rep(1:3, length = 10)6 d' G3 t8 E7 x9 v; u
( ~3 {6 g& T( {7 L% |: ^3 W3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。+ e* h9 y+ _0 W
例1:a <- 1:3; b <- 4:6; a * b; b^a$ l% x* ~' C5 l2 O* T
例2:a <- 1:3; b <- 4:9; a * b; b^a
! M' S8 [9 U* Y4 q E5 C! J" e$ [$ C
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
: `6 H4 f' B1 f# B例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]- Z K) Q3 G: I
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
; [- E$ N- W! |6 O, t( x例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
' t! ` j( m( a4 g( u3 G y) d例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA" S* ?( z! F" t0 q7 O2 N8 Z
8 H- x3 j4 w" f, T6 e7 c0 S5 V
5、主要向量运算函数。
) _1 |( a4 p: q0 U) f; G9 k3 m例1:xx <- c(2, 6, 10, 8, 4)
3 G( [# E [/ N+ f# vsum(xx) #和. v/ e$ ]. G' j C z, Z7 I7 ~
max(xx) #最大值
1 K! V4 V+ Y4 J8 m8 @+ @+ c- P+ jmin(xx) #最小值
& T$ C ?/ t( Z# Hrange(xx) #取值范围! o9 H9 T" v' g) f7 N K! u1 v
mean(xx) #平均值+ S' W/ g+ ^ Z, A. ]; w' P9 o4 ^
var(xx) #方差
; Y9 o8 V3 j" x$ w3 _* psort(xx) #从小到大排序
+ s0 }0 z @; c; t3 d; Hrev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))" Y F u. H ~6 }
rank(xx) #单元值大小顺序
- E: O F0 \9 x& ]7 ]# T/ o! a4 L1 yprod(xx) #乘积,所以阶乘是prod(1:n)
6 ^/ _ ] ^8 K" c0 i1 a例2:x <- seq(1, 15, 2)2 U9 k6 N( |* c$ R8 {$ I, W3 Q
append(x, 20:30, after = 5) #插入数据) l. C# U" o; k' x
append(x, 20:30) #参数after缺省默认从向量的最后插入值
3 X7 E1 M/ q' \. ~$ rreplace(x, c(2, 4, 6), -1) #替换函数
" e G. g: K/ f! T% }# a例3:state.name. O% O: z5 l; ]6 ]- ]: s
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数8 K* m; _9 `/ _2 q
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
+ |: i* Y' m' r& P( C: \7 n, `, Lstate.name[pmatch(c('Oh', 'Wy'), state.name)]+ ^7 [1 C6 T8 z6 G$ _2 _
例4:yy <- -9:10; r& w6 L* x( \! ]
all(yy > 0) #判断所有- m5 b0 [) h! S7 O: i6 M
all(yy > -10) w }. |: U; s+ n1 C2 I( ~
any(yy == 0) #判断部分
3 E; z" c: w3 H8 g, X, L, O4 }any(yy > 0)
8 s4 |% W% b4 Y$ U7 a) [) c8 I7 g7 A' Pany(yy < -10)# V1 x$ m3 M( g* s# A$ s: h
! J9 `; }7 e: r# o0 v3 b! g+ i* L! U
" `3 M5 x& w2 K
|
zan
|