- 在线时间
- 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 b4 ]4 F6 ?; f! Q8 L$ J" q0 z; y
例1:seq(10, 20, 0.5)
/ \) i1 S m& A! U" ]例2:seq(0, by = 0.03, length = 15)
7 y/ z" i1 g, [! l4 I9 S) S( E2 K" c+ d: u
2、rep():产生有规律的数列,重复第一个变量若干次。
3 X* }! A5 v N6 x+ r1 k例1:rep(1:3, 1:3)
9 ?( i; P8 Q- q例2:rep(1:3, rep(2, 3))
: H( \6 V) D5 N例3:rep(1:3, length = 10)
/ z p4 r, D& n& @
! g5 q# k k8 [5 b3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。% {& V/ F( R. t# q- Y6 g
例1:a <- 1:3; b <- 4:6; a * b; b^a
& t, h& o$ z; J4 v例2:a <- 1:3; b <- 4:9; a * b; b^a, o7 C; E9 U$ H3 `, J4 G2 [; t7 Q
- x! i' p; O0 [$ F
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。) c+ I' u! E* e1 z' H
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
* b" y" n7 a! _% o例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
A) z }6 h8 g6 m$ s- n例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]$ j4 q$ R; n6 f/ z' } t# A: `
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
4 {7 X$ b R3 a6 i3 {) ?! U& M6 N$ Y; l. R H! w0 l* H
5、主要向量运算函数。
. u( ?2 ]& k' ]例1:xx <- c(2, 6, 10, 8, 4)
. Y- Y, s, ]% N8 E: d wsum(xx) #和
0 t& L: {* W* N1 `" i) wmax(xx) #最大值
0 z2 ]0 G y# E5 h0 c1 Wmin(xx) #最小值
* F; s! G6 m; t: Qrange(xx) #取值范围 v' O2 ]3 B: z; {9 N
mean(xx) #平均值4 R) s7 k; j- ~" a9 Q2 C
var(xx) #方差
4 M! P4 ^" G, B4 ^sort(xx) #从小到大排序4 ^* L! j; b' K8 O
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))! d0 Z. X0 W+ N. p
rank(xx) #单元值大小顺序
) J) ?( `7 `, ^+ Hprod(xx) #乘积,所以阶乘是prod(1:n)
% C7 S+ a+ k) @例2:x <- seq(1, 15, 2)6 [3 P6 I. Q! I; x0 u& n
append(x, 20:30, after = 5) #插入数据) |! G. S" M$ r9 l% X
append(x, 20:30) #参数after缺省默认从向量的最后插入值5 P w* r5 S. G4 s
replace(x, c(2, 4, 6), -1) #替换函数
9 s9 n! f" S+ A例3:state.name
& X2 t1 a* V1 T* `/ rmatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
; A% t1 ^$ m" t3 {1 j6 h& B4 rpmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
1 X; k' Q1 T/ b* tstate.name[pmatch(c('Oh', 'Wy'), state.name)]
/ O# E% p6 h: B, V例4:yy <- -9:10
8 Q) k) B$ c$ `) v1 y. Lall(yy > 0) #判断所有
& Z+ E$ Z" t% S D2 {all(yy > -10)
+ n7 N% I) A% n9 C3 M0 ?/ Vany(yy == 0) #判断部分* K9 h( X6 F9 V) r8 z
any(yy > 0)9 A6 G7 o x9 `2 v
any(yy < -10)
- e" q- F4 i# \9 ?" n6 Y+ I2 Q8 _4 H) f. T- Z
t3 I, x7 z" o& n8 x( y) Y |
zan
|