- 在线时间
- 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。5 H+ K; ~1 C& h X0 T+ f! L0 b/ X
例1:seq(10, 20, 0.5)
( y! c0 `9 k+ a) F, x6 Z/ O. _4 D* e例2:seq(0, by = 0.03, length = 15)
. D- }4 m* I% q& \
( @ z% u0 z9 P& D& _2、rep():产生有规律的数列,重复第一个变量若干次。
! f& x! Q; ]& b0 P6 ~! K j x/ V例1:rep(1:3, 1:3)
; G4 g2 `, p: u" Y' `( h r例2:rep(1:3, rep(2, 3))
6 b; Z7 p2 ?# |) a1 T3 n例3:rep(1:3, length = 10)
1 E8 B. i. T% B9 U
# X5 f8 u) h }0 R. c3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。 {8 p2 V: u! e$ P: c
例1:a <- 1:3; b <- 4:6; a * b; b^a; w& K' J5 W6 v) v; g* o
例2:a <- 1:3; b <- 4:9; a * b; b^a
4 ^# g5 F' {2 T: \8 \7 v m6 D+ I N4 s% ?* ]
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
- m( ~1 S+ ^# |8 H4 ?7 ^例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]( m, Q% m/ d3 l$ K
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]2 u3 J& s$ ~$ d# @" Z! _3 L+ W
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]# {& w( c/ C$ S# _- Q8 W! @
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"8 X" ^5 j7 y# \
4 L8 B9 S8 T7 u: L7 u
5、主要向量运算函数。3 E, S5 z B% r
例1:xx <- c(2, 6, 10, 8, 4)
+ L- T" ~) _ p9 l6 X" n! y; ^sum(xx) #和! q/ a* f5 Z, M0 |9 W8 _
max(xx) #最大值
0 s, L8 A I" Q. ^0 ^2 wmin(xx) #最小值 ` X$ f' g* B6 z. k
range(xx) #取值范围
! M- Y$ j4 g; z/ x6 {mean(xx) #平均值
" b7 N0 {0 Z: _3 L' t- n4 wvar(xx) #方差
8 u+ x& p" o" w# S8 G) @. |sort(xx) #从小到大排序
1 [* A) [) W& U( N2 y* Crev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx)); }+ G9 G3 `# x9 N
rank(xx) #单元值大小顺序. c0 s1 i! A$ S% n! @
prod(xx) #乘积,所以阶乘是prod(1:n), a; B% s" I, g5 r1 }
例2:x <- seq(1, 15, 2)
$ r( `/ `( e3 W8 [append(x, 20:30, after = 5) #插入数据: q; Z' @; Q7 o+ U, J# F
append(x, 20:30) #参数after缺省默认从向量的最后插入值% @. x: D; q. L0 M
replace(x, c(2, 4, 6), -1) #替换函数0 V+ [9 V; e0 `/ e8 i( K4 R$ ?
例3:state.name. x6 W w8 ?+ Y' t0 C: a
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数& K$ O5 N- X. L0 g. }* X$ q- T
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
% E E& {0 x: u3 n* B) Gstate.name[pmatch(c('Oh', 'Wy'), state.name)]' }% V/ ?: P' B
例4:yy <- -9:10: ]% p z- {/ S% F# S7 S: P
all(yy > 0) #判断所有
# ^$ {4 b$ D2 A" q7 ^all(yy > -10)
! o+ ^9 T9 W" y3 R+ Q! F8 D$ w+ U' Nany(yy == 0) #判断部分
6 H f$ {2 k: ]9 Nany(yy > 0)+ Z) I' O( a0 }0 y" |# f
any(yy < -10)9 S: b, y3 l. E# _4 X3 z, j, X
^" c) Y1 |, ^" i; w7 U
9 _5 i5 h! B M8 H6 d |
zan
|