- 在线时间
- 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。
7 F) l2 I9 C: m3 _9 d, C例1:seq(10, 20, 0.5)6 E9 S6 k+ D( ?- y
例2:seq(0, by = 0.03, length = 15)
& y" h8 ^+ _2 m& G+ V8 _! B& [ _/ J9 s. O4 {
2、rep():产生有规律的数列,重复第一个变量若干次。
$ z* B# E7 R3 ?. K9 m例1:rep(1:3, 1:3)6 w- H: F7 B3 L$ I) z1 p0 z; m `
例2:rep(1:3, rep(2, 3))
% Y4 [7 J$ h1 r; z) }/ R+ e% {# \例3:rep(1:3, length = 10). W/ }5 h. T6 @) i: u& N" K9 ]
. U% R L' C% ?& ~8 Q4 _' @ ~- z3 m
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。0 B) B5 N3 F1 I9 i0 ^7 Y
例1:a <- 1:3; b <- 4:6; a * b; b^a+ S2 [! h: C2 a# K
例2:a <- 1:3; b <- 4:9; a * b; b^a& F0 t3 j" E- t6 o9 q1 W0 u
8 y, }/ b l! c, t
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
) P9 k# j8 x! p例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]$ t0 R& F* p O0 j1 Y) a6 y
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]3 D1 a2 q6 E9 ^: h
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]0 L/ J& P R3 x) _8 `" j
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
; X7 y8 b/ t- @( z g D! W% v" k# Q9 G( ]
5、主要向量运算函数。* Q- n, q7 Q% I5 _5 z
例1:xx <- c(2, 6, 10, 8, 4); _: R. ?# R; `2 v+ d
sum(xx) #和) P0 f2 O% Z1 Y' V
max(xx) #最大值
% B: j, v% P) s0 ?+ H8 lmin(xx) #最小值! q* _3 Z2 R: x' |% J; H
range(xx) #取值范围0 @, e+ f+ D$ h
mean(xx) #平均值2 Y6 Z( h2 _: d. {- ~5 i
var(xx) #方差
2 Q/ H, Y4 B8 Lsort(xx) #从小到大排序
3 K6 t7 K9 x9 J0 \) Rrev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
# k0 H& H5 s5 e# Z& | l( n" krank(xx) #单元值大小顺序
5 G3 ~- H7 l' l- Eprod(xx) #乘积,所以阶乘是prod(1:n)
0 U# g8 x0 j3 P9 k* {( g例2:x <- seq(1, 15, 2)# t. E% L" r( a5 I2 [1 Q
append(x, 20:30, after = 5) #插入数据
, \; A {. q% E+ uappend(x, 20:30) #参数after缺省默认从向量的最后插入值
# y2 D$ A" V0 mreplace(x, c(2, 4, 6), -1) #替换函数* h+ N$ \( ~5 t# c5 m
例3:state.name$ e5 [& O6 J' H# I" x+ t5 q: [" ^
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
4 A G# g7 F! Wpmatch(c('Oh', 'Wy'), state.name) #部分匹配函数0 t/ w9 T$ p3 m7 A( @3 }# v1 S
state.name[pmatch(c('Oh', 'Wy'), state.name)]3 u+ B6 q \8 K0 g# B& w
例4:yy <- -9:10
, O; f" v% O. A- n8 v% ^- rall(yy > 0) #判断所有
- ? @( g. G1 j6 u; J( Z/ Wall(yy > -10)& Z2 J% w7 `8 I7 A! n
any(yy == 0) #判断部分: J* y9 s) i" W& m
any(yy > 0)) B) q; ^9 r+ S7 {7 W! P* U
any(yy < -10)
3 e( R j1 o, s# k) q3 G" J
# g* u8 ~2 ?, p2 m# w' }5 O" k
4 {* J" T* ]3 ~# u: G) F* t$ | |
zan
|