- 在线时间
- 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。
! }1 a F# r4 ^例1:seq(10, 20, 0.5)
* b' S: Y1 c0 X例2:seq(0, by = 0.03, length = 15)
& _) g! f$ h& ]0 J+ [1 ~' Q1 H2 _9 ]9 @1 p6 m/ M
2、rep():产生有规律的数列,重复第一个变量若干次。
* y- v7 }1 a. U$ Y* `) t例1:rep(1:3, 1:3)# F' C# w- i! ` ^5 v
例2:rep(1:3, rep(2, 3))( V! k! x% w4 W g4 w
例3:rep(1:3, length = 10)' h5 A7 G1 c( c( G' g
; p* f) l4 {0 {& l3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。( |. x0 n$ | m$ N1 U
例1:a <- 1:3; b <- 4:6; a * b; b^a. T3 u) |$ ?5 O* r" m: \
例2:a <- 1:3; b <- 4:9; a * b; b^a
j, b, z' w- |2 K+ o. O* @4 g6 o% Z; B; Q' }/ Z1 J [
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。6 t6 H: P6 t& X
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
# B3 h3 B/ @9 W$ [' [) ~! r例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
9 R! D8 j* o) s. @+ s% r; q例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]9 q* i( q/ e! G# k, G
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"( P' ^+ M8 Z# x5 N7 a
) T: c' q p- a% H1 q8 N% ~4 Q1 g
5、主要向量运算函数。
. _( ^ N/ l+ L9 Q6 m8 B [" C例1:xx <- c(2, 6, 10, 8, 4)9 o6 ?. L( o( W! O8 O
sum(xx) #和9 I2 d' ?' F5 g" J0 K
max(xx) #最大值 p: M, u/ H- M4 b+ E8 L* d
min(xx) #最小值 C7 L4 P6 c ^; B
range(xx) #取值范围
3 I8 c# h _( Y' [9 \mean(xx) #平均值( A" K; u$ f2 \: d& d2 }
var(xx) #方差
: q% L0 K+ s* r+ U Osort(xx) #从小到大排序1 ^+ G1 C$ E; o: K! }" l! p
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
* g c0 r& K5 u2 o! F/ V! J$ t5 m3 lrank(xx) #单元值大小顺序
6 d4 U, y$ G o. g) g( p3 {prod(xx) #乘积,所以阶乘是prod(1:n)
1 F% a, ^3 a. h. R2 K: Q) P例2:x <- seq(1, 15, 2)
/ v! {( _- r5 r) Sappend(x, 20:30, after = 5) #插入数据
3 S7 J1 K, S5 i2 x" R3 I/ \3 bappend(x, 20:30) #参数after缺省默认从向量的最后插入值5 V' M$ H: |1 r" i0 q% m6 @6 M
replace(x, c(2, 4, 6), -1) #替换函数8 c7 l9 v" j5 I
例3:state.name' M: x6 Q% |# K o
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
U% m9 R# {/ w' L2 npmatch(c('Oh', 'Wy'), state.name) #部分匹配函数, ?/ Y3 e2 C1 i
state.name[pmatch(c('Oh', 'Wy'), state.name)]
. A0 {5 o: }/ Y+ J/ @% G* z% M1 M& X例4:yy <- -9:10
7 }' ]; @; F) h5 Pall(yy > 0) #判断所有7 \. p& Z' P/ \( E, }9 B7 }6 {
all(yy > -10)
& ^" Q( I" c8 P) J( b/ p1 ?; lany(yy == 0) #判断部分
! [, b/ M! f4 Z% Kany(yy > 0), b% n/ G. P5 u. Q3 q' I( z
any(yy < -10)4 U6 W1 Y* W# L' I7 E
# A* I% p! V X3 N% N; M1 K& w C
9 g8 }8 ?- i C/ R4 Z' l* d1 l |
zan
|