- 在线时间
- 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。
7 H5 S7 n; {5 }" i A3 F例1:seq(10, 20, 0.5)
( O' W8 x6 T* P0 `* S, ]例2:seq(0, by = 0.03, length = 15), u, Q! r2 Y2 _# c
7 ]( v; E8 C& L7 n: u& t5 X
2、rep():产生有规律的数列,重复第一个变量若干次。
+ g7 [: s+ u& g) ~例1:rep(1:3, 1:3)& S4 j: o- {* E% M
例2:rep(1:3, rep(2, 3)), V% K4 x$ v+ y/ B$ [
例3:rep(1:3, length = 10)
6 ^. C' X6 J d+ e( [0 y4 L! r2 d D, u1 I
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
# j/ m4 ~! p5 j) \4 R( @% f例1:a <- 1:3; b <- 4:6; a * b; b^a
n6 L0 g, N# U. _例2:a <- 1:3; b <- 4:9; a * b; b^a
/ |, V9 [; m! C) g8 R
6 Y" A9 e3 `# |5 L4 ?4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。" t* X1 E, r. K' _
例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]2 j9 w' e: ]& d' u! x: r
例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]) ]4 H5 g: N* s6 P9 M* `% Q
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
' ?6 G4 I x3 i" r; s, O例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"8 S5 l: J0 P5 j C' z' u3 P7 _
5 p1 `8 e7 @! j, j5 |% o5、主要向量运算函数。* L+ f* |$ A2 M' ?" p
例1:xx <- c(2, 6, 10, 8, 4)! G( V& C+ c/ e# V
sum(xx) #和
1 g; ?/ a+ u8 q) A' Zmax(xx) #最大值# Q0 M( ~% I8 l2 C" G4 ?5 i4 G
min(xx) #最小值0 S6 d4 y& p' S3 L9 w1 T& s
range(xx) #取值范围) k8 B9 {% k+ ?- ]6 y
mean(xx) #平均值* T1 f# D1 k( a; o6 c$ P
var(xx) #方差! k( ?: q# a% q' i) ]
sort(xx) #从小到大排序* d* ^% w& Q6 `
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
" V1 o# a6 ]* ?rank(xx) #单元值大小顺序
/ ~% o; i, D) Z8 i4 D1 f0 S. D% @: z; \prod(xx) #乘积,所以阶乘是prod(1:n)
6 _& J+ M, z; T: u, n- {# O例2:x <- seq(1, 15, 2)
R# w/ @( F! eappend(x, 20:30, after = 5) #插入数据
* C! S4 o6 ~" N) {7 \1 b; eappend(x, 20:30) #参数after缺省默认从向量的最后插入值) P2 p0 I, K% q* j; u% V
replace(x, c(2, 4, 6), -1) #替换函数
( \4 b2 S/ q/ P( N8 N例3:state.name
# H! Q5 b; \2 ^* c n4 Q* b+ T5 g: Cmatch(c('Ohio', 'Wyoming'), state.name) #完全匹配函数, u9 A; R/ T) T5 I: R
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数# U3 {* m. b5 r3 A3 ]# e/ y# Z5 l
state.name[pmatch(c('Oh', 'Wy'), state.name)]
# {# W. z! Y- x J: I) \% |' N例4:yy <- -9:10* J4 ~, l V5 F; V! t4 h' f, ?
all(yy > 0) #判断所有
4 X3 \* Z+ ?1 g3 f0 hall(yy > -10)
% X. R3 v% H0 E2 n: Gany(yy == 0) #判断部分) `% F9 A& H( n" u) }/ @
any(yy > 0)
8 u0 |; q" h5 Q, j5 S% Oany(yy < -10)6 j' z$ S! Q! T! n9 B( y) ], F8 x
; F' s; R6 l ^- r$ _. T; ]& S8 q
! W! Q/ R) K2 G3 B" E; G |
zan
|