- 在线时间
- 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。
9 u! X2 B% |7 d/ E+ A7 m例1:seq(10, 20, 0.5)/ }0 { t# g% O ]0 S
例2:seq(0, by = 0.03, length = 15)
' u$ X/ n+ k1 d3 L
! A# H6 N) @* s* Z3 j. D3 T2、rep():产生有规律的数列,重复第一个变量若干次。
$ C4 v/ t( c+ B1 x& n! |0 g例1:rep(1:3, 1:3)" l3 x0 g; `$ f6 N7 a# r; r7 s
例2:rep(1:3, rep(2, 3)); |4 q9 t( |) f& G! U/ |9 | o
例3:rep(1:3, length = 10)+ M* P X7 P( T* M
' Z, a2 n1 i1 h: |: o1 Y: d
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。. y: p+ c3 O' i- `$ G
例1:a <- 1:3; b <- 4:6; a * b; b^a
* D" q) O7 C2 F2 ]! f+ Q. L例2:a <- 1:3; b <- 4:9; a * b; b^a
4 y' b8 ?7 k# \+ _( i7 ~3 X L6 j( A
% f$ K; I4 s' b; g4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
7 q% V+ F1 L0 E/ P5 f例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)] [9 n7 C$ W. m
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
7 G5 c' ]( e* g例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]: n) {" ^: B1 u9 x3 z& h+ f2 N
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"& o* n( i+ |- c7 X" d& f' C4 ?
& ^! R2 |0 d- h5、主要向量运算函数。
6 K( }; a; Q, Q4 g! R* p/ `# |) c. s% U例1:xx <- c(2, 6, 10, 8, 4)$ D# E3 K1 v) Z9 R5 L. ?$ T
sum(xx) #和* i" L4 [) D; V; n( h$ M' a
max(xx) #最大值
2 R$ M1 C, c6 Z8 Fmin(xx) #最小值
2 k/ s( U6 A8 Nrange(xx) #取值范围
1 ` O/ h6 `/ V. q Umean(xx) #平均值
5 C/ o/ [8 [4 Y3 R; h( ]var(xx) #方差
" b, d8 I/ O3 ?4 F: |$ d# t$ k: tsort(xx) #从小到大排序
0 I% p, ^% l5 E g9 N2 srev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
: r& Y0 g5 ]" j* w; o" Urank(xx) #单元值大小顺序
2 G* r& Y+ N. I8 {5 F/ y$ zprod(xx) #乘积,所以阶乘是prod(1:n)
+ \6 Y, x( P( k; j$ b. _& Q4 |. P例2:x <- seq(1, 15, 2)$ K- U. r* M7 [ H8 S
append(x, 20:30, after = 5) #插入数据
2 Q+ K& A* m4 d0 m% ] iappend(x, 20:30) #参数after缺省默认从向量的最后插入值3 F7 L$ G3 Y* _! w( p* |
replace(x, c(2, 4, 6), -1) #替换函数 z# `2 y2 @$ v6 R D- ]6 \
例3:state.name
' H% Q9 Q ?1 Y. Ymatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
4 Q1 p# b5 w' X3 d+ B5 s4 c$ A6 ]pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
1 m/ l$ v7 I2 b7 j1 Y3 ~- Ystate.name[pmatch(c('Oh', 'Wy'), state.name)]
* s- R/ Z4 R! ], v5 Q( s例4:yy <- -9:10
# r! F8 j6 P1 e: t0 @3 A+ D) mall(yy > 0) #判断所有
t0 M! k0 v+ W+ Vall(yy > -10) y( V& ~8 R7 B/ S" b {
any(yy == 0) #判断部分
. h; g8 |0 V7 a% T w+ y0 [any(yy > 0)
" t: l6 a6 d& n6 I1 xany(yy < -10)# ?- Y8 c$ f8 `7 ` r, \, l0 X+ X: t
! L, t2 P8 x- d7 L0 _* r* ?! {: c
1 C; V% b+ C$ @6 T |
zan
|