- 在线时间
- 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。
5 G- C& n4 v" o& x例1:seq(10, 20, 0.5)
# k: V+ u( o% l例2:seq(0, by = 0.03, length = 15)3 C9 v9 y1 J7 z# m! n% ^& a
8 \2 n2 `+ L3 D- q" T. i; d+ q
2、rep():产生有规律的数列,重复第一个变量若干次。) k, W- e; `5 T, ?( z
例1:rep(1:3, 1:3)
3 @' M! e8 X& Z4 H! m( h例2:rep(1:3, rep(2, 3))
& h M+ |# Y* z l例3:rep(1:3, length = 10)
& o4 ^+ ~# Z4 ?! Z' C* c6 }4 V6 T* ~5 ?
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。% v8 P# Z& i A) o5 t9 A
例1:a <- 1:3; b <- 4:6; a * b; b^a; |' Z" V% k; V8 U1 a1 M: b' @
例2:a <- 1:3; b <- 4:9; a * b; b^a
. y( e0 l$ S5 D; v: ~# O
" t0 A- J: M4 P1 G4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。) [+ ?$ G! Y7 I' F2 S% D
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]/ L' @6 [+ J8 Z% A
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
: o' u5 d4 i6 i% J* C, w1 z4 J例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
" c, F8 @: W8 m" `1 {: @7 d" r例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
3 ?$ K6 H8 Y! @! m b+ t8 i6 H
1 P ~0 d' q- u8 n O7 }5、主要向量运算函数。3 s7 @ Y, [/ R5 Q i9 A; V
例1:xx <- c(2, 6, 10, 8, 4)
0 m$ f$ E% H. e9 {. N4 psum(xx) #和7 G# S5 T& k* h9 w
max(xx) #最大值
8 u3 K- I+ U" Fmin(xx) #最小值* |/ N7 u- R6 D; v, O! _
range(xx) #取值范围
3 M& g D6 s/ N% \4 vmean(xx) #平均值# w( @' |5 L# t
var(xx) #方差9 B& z4 E+ d; i' ^% z* F2 J4 x
sort(xx) #从小到大排序
6 g4 l; Z" U' N' L- Q0 Hrev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
) R0 A' h2 ? u' f. j- Prank(xx) #单元值大小顺序
3 k: b M8 ?! p" Uprod(xx) #乘积,所以阶乘是prod(1:n)8 Z+ V0 p& R" I7 `1 _; f
例2:x <- seq(1, 15, 2)
# O: [ ]$ O/ c! B, R7 dappend(x, 20:30, after = 5) #插入数据: x* Z. t% z- Q8 T: n
append(x, 20:30) #参数after缺省默认从向量的最后插入值
" g; ?; v. H/ m0 a5 W. A' }replace(x, c(2, 4, 6), -1) #替换函数% P3 m" I, d( q' Y5 Q5 D5 F
例3:state.name
' u6 W7 J5 V5 r& U+ B" O- g1 ymatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
' Q, c! k& m5 a% @ npmatch(c('Oh', 'Wy'), state.name) #部分匹配函数5 E6 d& G3 O6 R! ?1 O
state.name[pmatch(c('Oh', 'Wy'), state.name)]1 h% L) }: K7 L Q. O/ Z$ e
例4:yy <- -9:10
) y$ p0 i1 ?& f. x- z, `; ]all(yy > 0) #判断所有
8 o6 P* p5 q0 j/ U& Eall(yy > -10)
2 j# q8 `1 K% ?: L+ aany(yy == 0) #判断部分: |$ X' D8 f5 g- z r1 X
any(yy > 0)
9 y7 u" B4 ]3 P, {# z0 lany(yy < -10)
( y9 d& Y. z: ~4 V3 }2 L2 @5 |3 y9 y* k+ P& R8 D" U
3 i6 |2 o P& t) ?& C9 U# G
|
zan
|