数学建模社区-数学中国

标题: R语言入门——向量 [打印本页]

作者: 数模天下    时间: 2012-12-24 14:05
标题: R语言入门——向量

向量(vector)

1、seq():产生有规律的数列,间距省略时默认值为1。) h; ?4 ?( U) O" V" J/ s
例1:seq(10, 20, 0.5)
3 O  t. w) j" ]+ v% L* g& U8 w9 U/ S例2:seq(0, by = 0.03, length = 15)
1 V! o' J( w: w$ ^4 S6 j" t3 X- i* u' G# ?4 m& g: q* ~  h
2、rep():产生有规律的数列,重复第一个变量若干次。
' S+ [5 M. D# @0 v4 H# m例1:rep(1:3, 1:3)( G' i9 x2 w& Z9 s
例2:rep(1:3, rep(2, 3))! x" B; x8 V% H1 ]( @3 C- P: M
例3:rep(1:3, length = 10)" u# e0 S. I% e! L! n
7 d7 R- x, U$ C) |( k
3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。3 H4 a& C$ a+ M* H' ~
例1:a <- 1:3; b <- 4:6; a * b; b^a
) Z! _) }" Q# Z# e( j例2:a <- 1:3; b <- 4:9; a * b; b^a9 Y- B- Y. u7 n# U2 z

4 W; q! |' i* q4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
, v+ A- z' y* r0 i: F例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]
8 X) }7 r: z9 X: y9 O9 L) _) e例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]0 p7 |+ v4 D# B1 i2 ]
例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]
3 q, ~+ y! S) Z! ?2 o- M( ?9 p例4:x <- 1:20; y <- -9:11; x[y > (1)] #注意最后一个是"NA"
# X8 N6 a% _; X/ p
) z9 P2 g* Q  S- m' y& W7 e1 k, e5、主要向量运算函数。. Q! a" M8 w# \. H
例1:xx <- c(2, 6, 10, 8, 4)
2 p' c8 Y( _  p# psum(xx) #和
+ O6 k0 Q% f" T! C& O8 [! W9 amax(xx) #最大值
# ^. z/ V, b* q% |8 x6 Q% q4 w1 w3 D7 j, Mmin(xx) #最小值
% b! T- A5 I. I: o+ `0 O' \$ \  vrange(xx) #取值范围
2 ~* s/ F7 b. ?. S8 z: d9 p# U9 ?mean(xx) #平均值& [5 t2 X- \% ^1 ]0 s' F
var(xx) #方差3 y* a, X+ b, P
sort(xx) #从小到大排序0 v/ v, _/ C0 A1 G$ A( X* a+ f2 P
rev(xx) #反排列, 所以从大到小排序应该是rev(sort(xx))
% F" |- k. x9 c9 g4 frank(xx) #单元值大小顺序6 W- o# {1 a4 m$ G; k; q, i; v
prod(xx) #乘积,所以阶乘是prod(1:n)0 ?1 l. D, E. q' }7 d: U; H1 h# C; e
例2:x <- seq(1, 15, 2)
9 \, X+ F1 i/ B4 f3 a7 Vappend(x, 20:30, after = 5) #插入数据
3 ?+ S% S/ O- I  R( A  Bappend(x, 20:30) #参数after缺省默认从向量的最后插入值
3 r  `3 j2 U% @/ C/ Lreplace(x, c(2, 4, 6), -1) #替换函数
1 s* Z: y: a5 n( n( n  ~; q/ V8 j例3:state.name3 \) ]8 V4 ^+ @
match(c('Ohio', 'Wyoming'), state.name) #完全匹配函数4 j/ M  Y  Z; t) y+ F# X
pmatch(c('Oh', 'Wy'), state.name) #部分匹配函数
; K4 I' }7 u6 w% Wstate.name[pmatch(c('Oh', 'Wy'), state.name)]
9 X5 s2 W4 I5 x7 [例4:yy <- -9:108 k* F; u: [. X" X2 ^  }+ |6 E
all(yy > 0) #判断所有
; `$ ]& f" l- R, A; nall(yy > -10)
  p4 B' [# q, N5 W! v/ D4 @any(yy == 0) #判断部分
+ `# S( m9 m9 m2 z# _8 Q  Pany(yy > 0)
. ^! l- g  V" S+ \" _' m# \. F' T5 dany(yy < -10)
3 t+ @& v6 O5 r- f! W/ e8 K  R! t* Y' }: u& Y- \; f# j

9 Z: c# Y- w: S& S* {
作者: winxblast    时间: 2013-1-31 11:28
好像看的人不多~
作者: 度过无风    时间: 2013-4-28 07:34
不错噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢
作者: maybelu9    时间: 2013-6-9 20:40
学到了
作者: 空木葬花    时间: 2014-3-4 18:20
非常感谢楼主的福利!
作者: mvmmvmmvm    时间: 2014-6-6 12:01
这个用的不是很多吧,尤其是做数据分析的时候,一半数据都是存在数据文件里,而不是通过向量调用
作者: 添添向善    时间: 2014-7-14 10:33
不错啊,楼主继续啊!!!支持你!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5