- 在线时间
- 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。- ]! g) q: s7 O6 u( k, [+ X( J2 l2 N# U
例1:seq(10, 20, 0.5); G* b2 q( D) Q9 B0 v1 v
例2:seq(0, by = 0.03, length = 15)
* V6 ]/ }: M7 U* P) Q
, g& { w( Z4 f l0 o2、rep():产生有规律的数列,重复第一个变量若干次。
* s X6 ]/ l2 T% c& c. M5 u例1:rep(1:3, 1:3)3 ^- @; n3 G! o
例2:rep(1:3, rep(2, 3))
+ A$ \' ]! C4 a; S例3:rep(1:3, length = 10)) }0 T6 ~& |, N9 X1 X- \, J
/ }, u/ C- Z. f6 I3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。( Z. A" e+ s/ m2 l
例1:a <- 1:3; b <- 4:6; a * b; b^a
2 q% ]2 Y5 R( r/ A% O2 A例2:a <- 1:3; b <- 4:9; a * b; b^a
5 Q' a: N3 H! w; P
& U( ^( s( {6 i9 }; s) `4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
5 J+ J& p# ~( z7 d. L" d8 l: \4 Z( O例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
1 Y' `% _* p: s# Y# j例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
, O+ ~% X' N; s0 [' A例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]0 k6 Q0 J$ i$ u( h
例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"- s6 x) s: j+ j% R: L
( m% x' M- ?8 Z5、主要向量运算函数。, A, N. x6 |3 a/ V
例1:xx <- c(2, 6, 10, 8, 4)
8 g( S* Q: a) q# g6 p1 Isum(xx) #和4 t" e" q. ^( W" s; n
max(xx) #最大值
4 k" ~3 [. H: f8 W- Vmin(xx) #最小值
7 c+ V$ M& l; \, [& _$ d' Arange(xx) #取值范围7 _8 Q, |; y/ ~( x5 j: p7 @
mean(xx) #平均值
; ^4 l, J' o0 f; D/ u) dvar(xx) #方差( \& q! O3 d4 h/ W6 y4 W) O8 D" _
sort(xx) #从小到大排序
. S1 B, c2 ~& w$ y# z7 Urev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx)); o0 n2 U6 A: A8 l3 E# D, b
rank(xx) #单元值大小顺序
; J- _% J9 a E% H. E$ H9 Vprod(xx) #乘积,所以阶乘是prod(1:n)
( r" f% o% p* h! w! q* q4 V例2:x <- seq(1, 15, 2)
1 C4 E, x o4 T' x4 {append(x, 20:30, after = 5) #插入数据
0 }4 }2 q" u- u) `9 Gappend(x, 20:30) #参数after缺省默认从向量的最后插入值( I3 O+ N1 B% c
replace(x, c(2, 4, 6), -1) #替换函数
' i L1 x+ _/ u5 h& H例3:state.name
. @5 D6 D7 C4 s* Zmatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数. n* J4 F5 f+ e/ b# C/ ?
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数3 t3 A5 o/ A/ F- X
state.name[pmatch(c('Oh', 'Wy'), state.name)]
0 ]2 |" \5 l. T1 Q例4:yy <- -9:10& \6 R5 H8 S. a% J- Z
all(yy > 0) #判断所有
2 C v- G: ~+ |5 l+ I3 @all(yy > -10)
) T, Z! t6 \; s9 L$ C: eany(yy == 0) #判断部分5 ?2 e0 {9 m+ R0 _) v
any(yy > 0)
/ k$ H" \* X" e: a8 eany(yy < -10)
3 c. u. l# c% A' e: [; |3 f! P r' b+ v2 h# Y
! I4 P3 z' }7 R+ _, N2 z' X2 w
|
zan
|