- 在线时间
- 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。
) H4 |# X V) }; k/ ~6 e! h例1:seq(10, 20, 0.5)
* C3 W9 Z z! U# O5 k6 Z例2:seq(0, by = 0.03, length = 15)! ~4 r1 p7 {+ C5 w' o
: _' B" M( @9 f* t; @6 T* l3 B2、rep():产生有规律的数列,重复第一个变量若干次。
! e0 P7 X( A G( F例1:rep(1:3, 1:3)) m1 U& A6 S5 w9 u" E0 R/ j
例2:rep(1:3, rep(2, 3))# N: C' k, Q6 G' h5 I$ r
例3:rep(1:3, length = 10)7 M1 u1 o* ?: O2 V' @$ Y
1 R. S% Z7 J8 E3 \, {3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
6 z6 ?" w) B, K+ I8 I; x" g例1:a <- 1:3; b <- 4:6; a * b; b^a
. k# y; R- A6 d9 l例2:a <- 1:3; b <- 4:9; a * b; b^a( H" |; J" F# ?% `% J ]( a+ r
4 q! _* s" I) s/ j4 k4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。! L1 T( ^ ~# V* {$ D
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
D( ~7 N) x; o; h( z例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]6 m7 p, n( K6 h0 k, @- J: s
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
, e4 k3 G+ Z9 j ?例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"& T0 L! A6 }$ N
' C( W5 Y( s, ^& ?0 l5 r
5、主要向量运算函数。3 }# u7 S7 t- `; { ?) L
例1:xx <- c(2, 6, 10, 8, 4)
E0 ^9 Q2 s y7 o) ^sum(xx) #和" j) Q ^' `7 X& M7 O* ]" f; ?
max(xx) #最大值
+ V6 v1 }! h* q9 Q5 Nmin(xx) #最小值- N* Z& J# v5 M6 ~
range(xx) #取值范围
# G( O3 o9 h5 p* R3 ?mean(xx) #平均值
7 B |( e) }- `2 W. evar(xx) #方差
S5 n* f0 i8 g9 Bsort(xx) #从小到大排序
7 {3 w; i% [! u) l3 Lrev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))! q6 o+ a: Q- [
rank(xx) #单元值大小顺序
6 a* _; N/ t+ N; V: G* f/ G2 fprod(xx) #乘积,所以阶乘是prod(1:n)+ |3 F" t( x9 ]
例2:x <- seq(1, 15, 2)2 a" W. n l9 R$ l. @* v P4 r
append(x, 20:30, after = 5) #插入数据
a" ^, [% Y& q& I3 }2 m' xappend(x, 20:30) #参数after缺省默认从向量的最后插入值3 ^5 `: X4 j/ X; y8 l! I6 t
replace(x, c(2, 4, 6), -1) #替换函数
/ s+ `8 R1 X! I& n% r3 g& V' C例3:state.name ?2 L/ k2 @8 U/ d$ ]5 r) ]
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
# b; U8 w0 q: Z k7 D5 d% ^$ spmatch(c('Oh', 'Wy'), state.name) #部分匹配函数: o) u& Z- b1 u
state.name[pmatch(c('Oh', 'Wy'), state.name)]- e5 x5 i6 E1 Z3 x% j
例4:yy <- -9:10( T& |/ c/ ], A3 p# U# o* n! S: V
all(yy > 0) #判断所有7 X/ n) @) z9 F V0 L l+ U
all(yy > -10)
, O3 h0 V% T: S+ b5 Dany(yy == 0) #判断部分
5 q: D' z2 c+ J8 u* Uany(yy > 0)* ]! T3 B3 b5 H2 J3 L K7 c9 {! Q
any(yy < -10)( G! q+ p3 g2 I5 R
8 `: G, {3 W# L
K8 P2 x/ T5 [, x7 ^" ^ |
zan
|