- 在线时间
- 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。
: @0 P2 ]/ d8 B1 F1 ]5 j& h( n' i+ l例1:seq(10, 20, 0.5)$ [* |; y# o( W
例2:seq(0, by = 0.03, length = 15): \& n& X3 A9 f+ o( `
' k g i m* e/ F( @2 L0 |2、rep():产生有规律的数列,重复第一个变量若干次。
+ U( J. K! H& e1 V* ^% p: s3 T例1:rep(1:3, 1:3)' V9 M3 j% J& W
例2:rep(1:3, rep(2, 3))
P% \" ]5 c: O9 m5 w) c5 D `例3:rep(1:3, length = 10)$ D: [- |. }6 W
- I/ }/ W, e' J0 q- {/ |4 s& B3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。1 m5 m4 Y5 i+ T7 Z% T# O3 |) @
例1:a <- 1:3; b <- 4:6; a * b; b^a
2 l+ ]" V" ^: w, U* F例2:a <- 1:3; b <- 4:9; a * b; b^a
# g* y, _1 ^) @8 n& @7 o
8 n! |4 s7 n4 N+ T) \6 b4 H4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
1 }5 j" e' X! h3 {# y例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
8 T; d7 {! ^9 N例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]
% J0 F4 E% x" |, x: H例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
) v" e/ P% d* T/ }0 c p3 x例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
" w0 @6 w8 A7 b$ F# ?& Q. k# W% m' E6 ]# W
5、主要向量运算函数。
) A# i' x3 j6 _& K例1:xx <- c(2, 6, 10, 8, 4)
5 ]3 ]; ]1 p4 r5 ysum(xx) #和6 M+ M+ l; _8 A
max(xx) #最大值; b( g# D3 V$ X7 W2 b
min(xx) #最小值' @, B, D, e3 Y7 b5 c- Q% P
range(xx) #取值范围
3 f5 p9 ~8 M7 O$ J+ a) F, E ^5 ~mean(xx) #平均值* n- I K4 G( q
var(xx) #方差
$ Z8 X5 D& ^2 a# Csort(xx) #从小到大排序# \3 X# k6 x8 h; B
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))) h2 x# S& i2 g0 m P. n6 ~
rank(xx) #单元值大小顺序
* c* H# n5 Z, Q4 Y3 xprod(xx) #乘积,所以阶乘是prod(1:n)/ f" X& M0 ]& Q' p0 M
例2:x <- seq(1, 15, 2)# i2 d f$ |6 v& O- m
append(x, 20:30, after = 5) #插入数据
3 H) A/ V3 o" ^append(x, 20:30) #参数after缺省默认从向量的最后插入值
) h# z* J b/ W& F# K$ B: Nreplace(x, c(2, 4, 6), -1) #替换函数 Q2 L7 |, K) u% ~* v I3 H1 u
例3:state.name
' Y j! z ^+ x7 pmatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数+ V6 k) }6 J# ?. }+ m/ D
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
2 x# W- U" G* c' y& ^/ y7 Ostate.name[pmatch(c('Oh', 'Wy'), state.name)]) ?9 T8 F2 J, [2 L
例4:yy <- -9:10
) Z y3 Z. J: [all(yy > 0) #判断所有7 R- C. k2 c# K8 ]
all(yy > -10)2 J, @8 w9 N% c7 _: H
any(yy == 0) #判断部分
( K8 T: b+ h- x2 z# h( u. f$ r8 `8 hany(yy > 0)
/ v& O" S0 z$ E3 i. c* k' H- Qany(yy < -10)! F) f; b* U& ^ n: A
- X9 i& R, \. c6 A# w4 N1 g% p# p$ Z" r
|
zan
|