- 在线时间
- 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。, l' z' v v* O$ ~' E
例1:seq(10, 20, 0.5)* x. ~$ [. [. d3 H- l
例2:seq(0, by = 0.03, length = 15): G' l5 t9 ]0 }8 K* p* o( V/ N: } M
- x( n/ A }; h' S1 m8 _; ~2、rep():产生有规律的数列,重复第一个变量若干次。+ \5 j% j. M6 N0 }# s
例1:rep(1:3, 1:3)
R' w* w6 P* y$ g2 Y例2:rep(1:3, rep(2, 3))7 f* Z8 @$ h) X- A4 ?1 j; ?9 A
例3:rep(1:3, length = 10)/ [ W& y9 A1 b! O# b7 z
. A, J( ~3 J. R7 g3 t, ^3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
2 K# v4 U5 {5 i0 w例1:a <- 1:3; b <- 4:6; a * b; b^a
) N/ ?( l5 L; P9 M$ n9 {8 r' x例2:a <- 1:3; b <- 4:9; a * b; b^a. ~0 D& Z( V* T3 x; j
: @6 Q7 k7 c/ ^& q% g4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
+ E6 Q6 [6 o- o- P) N( f0 B F) G8 d例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]# T+ l$ i4 `" [ X! P
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]. s3 g) o+ K' }5 U
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
1 S9 p t1 {1 o; D. P例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"' k7 H" a7 ?9 b
8 a% E3 s A: l
5、主要向量运算函数。$ w" y2 e* A. b6 }8 ~, _' X, z
例1:xx <- c(2, 6, 10, 8, 4)/ D- m3 o; Q# M) J; Z8 ~1 T
sum(xx) #和6 Y b; T5 P& [7 B6 W* G1 C! X, Q8 v
max(xx) #最大值4 `8 r# }; W' D0 V! a; M' h
min(xx) #最小值* U$ u4 |. {- m7 k; `
range(xx) #取值范围& m( \. v) w9 z
mean(xx) #平均值7 {$ ^2 A/ h5 C M" u w
var(xx) #方差
t7 A o( p* _6 `" u3 asort(xx) #从小到大排序- `1 }' T. l3 ]
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx)). U; C8 s2 P0 {9 ?
rank(xx) #单元值大小顺序
: {$ N3 ?6 u0 f& Mprod(xx) #乘积,所以阶乘是prod(1:n)
) i# }4 ?& v0 D; Q) \: V例2:x <- seq(1, 15, 2)
; C( |. B, W' N* Q8 z4 Lappend(x, 20:30, after = 5) #插入数据
& B; |" z/ i7 p b3 ~append(x, 20:30) #参数after缺省默认从向量的最后插入值
/ l; F0 L3 @1 B; y. H* v( Y6 Vreplace(x, c(2, 4, 6), -1) #替换函数7 y! s: o: [6 d* c3 V2 ^9 ?
例3:state.name4 S- {2 R) y1 i) i+ q
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数1 A& _0 _/ b) [ R- a* _2 V& L( T
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
) i' K* }8 a; z5 t( ]% ?state.name[pmatch(c('Oh', 'Wy'), state.name)]( O. d: {4 c8 ?0 X/ k
例4:yy <- -9:10, e h5 ]0 c: ]& F* {
all(yy > 0) #判断所有& w ]- f1 q8 M" M. _" } E) m+ E
all(yy > -10)
9 f6 s, l9 z5 T% F+ w; _$ many(yy == 0) #判断部分. [5 d) |- @0 [" \% J r% k/ \* Z" U
any(yy > 0)
. f; P3 P( N( N, Xany(yy < -10)
3 }& S% Y0 Y9 o! v5 j! I$ _ s: `5 y! ]* x! J7 i! R
! i0 Y2 M m! O2 l6 t
|
zan
|