- 在线时间
- 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。# K9 |! q% Y8 F o4 U
例1:seq(10, 20, 0.5) {/ a( i- Z5 G1 h% k
例2:seq(0, by = 0.03, length = 15) |2 P, B% O; z# Q' G2 A0 \' [
0 ?. ^% I- p I4 R6 g2、rep():产生有规律的数列,重复第一个变量若干次。
$ K6 v( c, {+ u: `- f例1:rep(1:3, 1:3)+ P6 z' p& p7 a
例2:rep(1:3, rep(2, 3))1 Z2 Q) t- e! |
例3:rep(1:3, length = 10)& O% i! t9 j0 _; W/ c6 C7 @
& s" T/ M3 ?. ^( w9 y# W) P3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。" ]$ G" ?2 K2 j& s
例1:a <- 1:3; b <- 4:6; a * b; b^a
, x8 L1 ~* [8 W. \# \. y例2:a <- 1:3; b <- 4:9; a * b; b^a
% [0 \0 m5 [3 T' v3 _) |) u* @
, ]7 H" v7 _* k2 H4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。" b' \; u) ^" ^1 M' X9 ]" T/ j: X
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]- x" t* h% n* H' A' f4 d
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
" q- ~3 W1 A) f- A例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
9 z `8 I; _8 F5 ^( H* l% H$ q( F" u例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
& k' Q$ T$ M+ [& \" X
0 u7 B' c/ }3 N4 R5、主要向量运算函数。5 D1 R) t- z; \- Q% _2 [3 b% J4 B
例1:xx <- c(2, 6, 10, 8, 4)
+ ]* v: E& k+ n3 N' ]- i/ dsum(xx) #和$ Z3 O& `' P1 ?5 }4 \( q5 ?
max(xx) #最大值7 L7 w' t2 B5 w0 N! ^
min(xx) #最小值
, ?' E4 F6 \. Crange(xx) #取值范围
) V' L y, h4 f9 I: O8 \! n9 B. Nmean(xx) #平均值
8 G; B, D2 m: T L, M; Evar(xx) #方差
* x; V1 M% f3 i# X* r$ lsort(xx) #从小到大排序
- J* s& C& J9 `" z4 C2 N( |) Erev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
, g8 @% x5 b, J' B$ Arank(xx) #单元值大小顺序
8 I2 {1 O Q7 f; y( |. T% Gprod(xx) #乘积,所以阶乘是prod(1:n)) i2 N$ ]/ u4 Y- x$ T
例2:x <- seq(1, 15, 2)# q2 B; s m4 B# u
append(x, 20:30, after = 5) #插入数据- p9 e2 q" g2 A, e
append(x, 20:30) #参数after缺省默认从向量的最后插入值
! B- ?6 \ ]0 X& p& Yreplace(x, c(2, 4, 6), -1) #替换函数/ x% i/ ?2 z P; y- D; N/ V
例3:state.name0 D7 W/ Q; t# F0 s9 W$ x' r
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
1 i( S; I; n$ Jpmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
& f# K& Y% G. L* @, Pstate.name[pmatch(c('Oh', 'Wy'), state.name)]
) D. d: e6 w) y* ^例4:yy <- -9:10
4 ^- l8 e, Y4 l! S, gall(yy > 0) #判断所有2 X3 M$ k: v) O
all(yy > -10)( H. l7 V8 b' }2 g( P9 C. _, K
any(yy == 0) #判断部分, e, j+ f) X8 b) f7 p- |( g$ @
any(yy > 0)6 p i2 ~/ Q4 C9 ^# L0 G* a
any(yy < -10); t% X: N% H1 y7 F3 R
0 e- x8 b! x% y2 S" _: E2 a6 A
% b* }' h7 C/ `1 s+ ]; Y& | |
zan
|