- 在线时间
- 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。
3 f0 I5 [9 p) u4 O4 Z例1:seq(10, 20, 0.5)5 E6 W1 @# D# w9 \
例2:seq(0, by = 0.03, length = 15)
3 i1 W% J6 G, n( ?) k" U9 P- z/ ]
+ [) w5 X* B8 l' ?. M, g. y2、rep():产生有规律的数列,重复第一个变量若干次。5 S0 E- I! u- R8 _; G" T' l+ c1 S
例1:rep(1:3, 1:3)8 `) A# k, z) a1 `( g7 ]
例2:rep(1:3, rep(2, 3))
- E3 B# u, |* g0 c1 r$ h例3:rep(1:3, length = 10)
7 |6 C: T6 Z! ^2 f% i: k- a+ ^7 i! |& Z* o8 J" I
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。0 c1 D8 o6 ]6 K- T. ~& D1 }9 s
例1:a <- 1:3; b <- 4:6; a * b; b^a3 r: w' ~. |/ Z( R3 e
例2:a <- 1:3; b <- 4:9; a * b; b^a& F! [) Z9 P+ I: j
% y% Z3 n( C) m$ M9 G5 {4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。& }3 ~" K% r& X2 a8 f: O0 X
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]1 E7 B) G ]2 f+ @" G2 x
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]6 k+ `3 t$ s4 F' y1 U
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
0 ]# M% j+ B% O2 |+ i0 ~2 y" e4 l8 G例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"3 P2 n) e; `6 Y, e9 V, u8 J
, |; b, q" a- r7 b* l5、主要向量运算函数。
5 A: M! v( D9 C; s M9 h例1:xx <- c(2, 6, 10, 8, 4)6 _4 a& |" s/ m4 v9 ?3 U
sum(xx) #和
! t2 t) n9 {' @$ f8 bmax(xx) #最大值
; {9 w7 h4 M6 M7 umin(xx) #最小值- _& H5 Z$ r" a. T1 O
range(xx) #取值范围; S) C |, c. H/ o1 A. T
mean(xx) #平均值$ N' w( v" F) O$ ]4 `: a7 O$ r0 g3 d
var(xx) #方差5 i' C! G8 \$ }: q
sort(xx) #从小到大排序
" {! P6 \( e# e$ I# Q5 \& J; Jrev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
/ v9 l: N. o$ Q+ w' ^! I7 A9 `rank(xx) #单元值大小顺序( t+ }5 ]+ G; v6 M
prod(xx) #乘积,所以阶乘是prod(1:n)/ X4 v5 \ l# [: o
例2:x <- seq(1, 15, 2); j, V( @; {: z# }; s
append(x, 20:30, after = 5) #插入数据
# I5 p& L+ }# z' G! e. a8 Oappend(x, 20:30) #参数after缺省默认从向量的最后插入值
K: y2 q: w+ [ L0 H# m! M2 [replace(x, c(2, 4, 6), -1) #替换函数
0 [; l$ R8 Q( ~5 W% |例3:state.name9 J A% t6 Z) V8 C1 R
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数! y+ k T" w/ X# Q1 l
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数- ?0 W$ a! Z( I6 E# I3 S8 H% \$ R
state.name[pmatch(c('Oh', 'Wy'), state.name)]! e1 _9 H/ X) B) \ Q( A+ O
例4:yy <- -9:10
% }4 n* |7 f |. i. o, j0 l& \all(yy > 0) #判断所有
! p8 |& c' d" `1 u. Tall(yy > -10)
: F) e% l+ c$ Z0 m. Cany(yy == 0) #判断部分
! i' |4 U; S6 g/ X6 Aany(yy > 0)
8 d4 Q2 _' N( ~9 nany(yy < -10)* q) }6 g6 X, k! r6 H; U
" I4 \% G1 W6 s0 w9 u
& n6 S) }0 n: x2 z3 B* j/ ]2 ~ |
zan
|