- 在线时间
- 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 |% ?$ e) {2 [/ ~: _7 p7 D& B) z# D
例1:seq(10, 20, 0.5)
5 N- E: ^7 j5 Y8 J! K9 g0 e+ D例2:seq(0, by = 0.03, length = 15)
, g. `$ w% z: S3 H; ?
$ E6 z) v! K$ {7 ^2、rep():产生有规律的数列,重复第一个变量若干次。
$ ]0 `8 O: R# k1 o例1:rep(1:3, 1:3)0 t4 |" X2 R( w6 [
例2:rep(1:3, rep(2, 3))) a2 P. @1 d5 i
例3:rep(1:3, length = 10)$ m) r9 Z9 _* ]
5 y V4 o0 [5 L1 [
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
% V- ~0 |+ W" W3 }' W例1:a <- 1:3; b <- 4:6; a * b; b^a
1 C( q% D0 }* q例2:a <- 1:3; b <- 4:9; a * b; b^a
* ]' c7 l* m( b8 M- ?, |: |* N) }$ u0 _
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。$ J( W' |7 F) G3 j; a; q
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
2 W5 x- B6 u L5 u" c例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]5 L0 G2 m3 }! r2 @
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]6 o0 A+ g5 `+ p8 U1 T* B) z
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
! i5 @# {( E1 e, P( ~4 K B- J; n0 M: T' Q/ m: p% n5 a3 J
5、主要向量运算函数。, V5 b% ^( |7 @/ E
例1:xx <- c(2, 6, 10, 8, 4)) {* W8 j7 J) {* [* e0 x. L
sum(xx) #和% L% `6 d" k5 O) y5 W* w" e, i
max(xx) #最大值
' M. N t9 ?$ ymin(xx) #最小值0 z5 @4 b# \. B8 d n
range(xx) #取值范围
% [4 f' f/ m/ A6 q7 Amean(xx) #平均值
@0 V2 k" M+ ]var(xx) #方差
4 N4 v" I3 k' k6 V) G- x7 Qsort(xx) #从小到大排序
2 |1 ^/ G, ~0 G! ], y6 frev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
2 T( L, A, c/ L1 W drank(xx) #单元值大小顺序$ j3 z1 t6 v" b- u2 V
prod(xx) #乘积,所以阶乘是prod(1:n) J: e) Z2 v+ p% p
例2:x <- seq(1, 15, 2)# I. a0 L0 g Q7 [8 \2 Q
append(x, 20:30, after = 5) #插入数据
( ?+ y+ x. e5 \! O. v3 y" j( cappend(x, 20:30) #参数after缺省默认从向量的最后插入值& [6 R1 s: f! I" ]# W$ V! c/ w
replace(x, c(2, 4, 6), -1) #替换函数1 _9 {) }: U# ^5 A9 N; \9 Q1 K
例3:state.name
+ W& H% f: P8 H1 h5 Ymatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
$ |8 C- K# `7 v6 i9 c" dpmatch(c('Oh', 'Wy'), state.name) #部分匹配函数# z; s5 X0 B% k$ j O( A
state.name[pmatch(c('Oh', 'Wy'), state.name)]
% A$ M; w+ N: K3 v8 y$ ^例4:yy <- -9:10
0 [* i ^% v$ N: Sall(yy > 0) #判断所有
! x' C: D/ J1 T& {1 x; ^( v, ~all(yy > -10)0 I1 r# W4 V, @+ t* E- h
any(yy == 0) #判断部分
) b- a; Y1 i# ^any(yy > 0)
! v7 }# e% Q# q0 _. d7 fany(yy < -10)
/ y: b3 }* z' y( f+ J! C* B% @3 r% @) E3 d% D. |
1 L4 `; n- ~1 P& e7 q4 R& M& o
|
zan
|