- 在线时间
- 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。
( q% ~& H3 Q0 [6 _例1:seq(10, 20, 0.5)
: V& L" C& y6 K7 a( G9 F6 U7 v: n, m例2:seq(0, by = 0.03, length = 15)
- v# f$ o6 X; m* E* {
) O) _* @8 Y% h" h9 |- m$ V3 b2、rep():产生有规律的数列,重复第一个变量若干次。
- Z. Z* \3 _) L例1:rep(1:3, 1:3)/ a# r# d2 s/ a
例2:rep(1:3, rep(2, 3))1 Z- a8 z% R7 ^9 A( r* ~; X
例3:rep(1:3, length = 10)2 Q* Y. u# N0 j! n
2 [9 x- ~( L7 n& v% c/ Y/ n4 a, \
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
1 f6 q ]0 c! ]" C9 `1 k- Z例1:a <- 1:3; b <- 4:6; a * b; b^a
9 Y( g3 `0 [- r: q9 S& b例2:a <- 1:3; b <- 4:9; a * b; b^a
/ ~# U" L+ G3 r4 T @
% T$ N2 M$ r4 D7 B: N1 E* F4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。0 A" Q0 I8 U W+ y# G! k8 ?1 @4 N
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]0 l, b& s J# I# S: S, Z
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]: d D* y+ x) D! {
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
1 w% n' k/ Z0 X( a1 @! `: ~例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"' y# U9 b! l1 b
: w1 |3 v& o( ~/ }; w, g4 M5、主要向量运算函数。
S6 Q8 [8 S: X+ Q; l9 [例1:xx <- c(2, 6, 10, 8, 4)
- n% O! d* x: K$ H$ l7 }# H# Dsum(xx) #和6 R! W8 b5 D! R" y% B
max(xx) #最大值) L4 G: V0 J8 t V$ n+ j) }
min(xx) #最小值
; x' K) g7 U9 p: h7 R6 R. {range(xx) #取值范围+ d7 s$ C) ?, `. H7 ^
mean(xx) #平均值
, m) i3 C" D1 f7 Ovar(xx) #方差& O: Q' W. ^" v5 v2 {) v
sort(xx) #从小到大排序$ Z7 S! s* I4 ~9 i# Z
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
' @9 S' o1 N6 q ^# p1 s3 _rank(xx) #单元值大小顺序/ j# H# Q! K1 @# v0 G6 p) @% c
prod(xx) #乘积,所以阶乘是prod(1:n)* K y$ M% r& y8 _) ?/ D
例2:x <- seq(1, 15, 2)' {" b9 _4 b" l: ~8 P7 A' G& U: Q9 }
append(x, 20:30, after = 5) #插入数据
5 V! ~ A9 w' [8 V, b" [5 i. y* Yappend(x, 20:30) #参数after缺省默认从向量的最后插入值
+ q4 n) u6 w6 z5 Creplace(x, c(2, 4, 6), -1) #替换函数
( U# G6 L! R9 s例3:state.name* D6 N* B7 s6 c8 T% J7 ~, ^
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数
1 O, v' O0 ~8 C) O$ Hpmatch(c('Oh', 'Wy'), state.name) #部分匹配函数4 R: Y3 |6 l7 H) N& O }0 U" L
state.name[pmatch(c('Oh', 'Wy'), state.name)]
+ c' }8 c9 q0 n* A2 c! k2 i# \例4:yy <- -9:10
1 J1 u* t; x$ _- O3 o4 uall(yy > 0) #判断所有
# f: q6 ~5 x6 i3 [/ A: u- \all(yy > -10)
6 v+ _2 @2 k' f8 U% qany(yy == 0) #判断部分
{6 E4 k3 o$ [$ B3 ]; F1 G, jany(yy > 0)# y( L# w s% ]8 _0 y2 U
any(yy < -10)# l5 X. o* K& @3 _- i2 `. @
) |+ m+ ~8 ?4 Z
! |3 c6 |. X* \ |
zan
|