数学建模社区-数学中国

标题: R语言入门基础之数组和列表 [打印本页]

作者: 数模天下    时间: 2012-12-24 14:04
标题: R语言入门基础之数组和列表

数组(array)

一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的.
  @+ M. k3 s% |0 `6 G1 V- Q; z数组函数是array(),语法是:array(dadta, dim),其中data必须是同一类型的数据,dim是各维的长度组成的向量。' U4 W1 u3 s/ u6 D# X8 ]4 D
1、产生一个三维和四维数组。# W7 y* N3 ~2 X
例1:xx <- array(1:24, c(3, 4, 2)) #一个三维数组* [9 X7 B2 v% r% T& Q- a7 N8 t
例2:yy <- array(1:36, c(2, 3, 3, 2)) #一个四维数组- E) H3 f/ P  I. W% ?8 n0 t: r

, h7 Q$ q  ^% o% o2、dim()函数可将向量转化成数组或矩阵。4 d3 |9 _1 _( ^: ]6 }
例1:xx <- 1:24; dim(xx) <- c(3, 4, 2); xx #效果同array(1:24, c(3, 4, 2))3 G  l$ C( F$ m9 O9 j
例2:zz <- 1:10; dim(zz) <- c(2, 5); zz #效果同matrix(1:10, 2, 5)
/ V% U: g; a9 S
+ h6 ]# j) j1 E列表(list)7 O( H. ]4 q4 H" r* `+ h( ^
向量、矩阵和数组的元素必须是同一类型的数据。一个数据对象需要包含不同的数据类型,它可以采用列表这种形式。
! D; M0 E: w0 w创建列表可用list()函数,语法是:list(name1 = component1, name2 = component2, ...)。
# v9 ?2 J: M* j+ D( [1、创建一个列表
! [* @2 _/ _, `- K例1: xx <- rep(1:2, 3:4)
  w  a1 z2 L0 a' R- q8 gyy <- c('Mr A', 'Mr B', 'Mr C', 'Mr D', 'Mr E', 'Mr D', 'Mr F')
. O$ `' i- O( f* `$ z7 _* izz <- 'discussion group'
7 @+ d) N# C7 H) x/ l, |% ]& Sname.list <- list(group = xx, name = yy, decription = zz) #创建了一个名为"name.list"的列表
; n: i; w+ e* ~name.list$n[name.list$g == 2]! d" t& H0 Z, j& Q( J, T
length(name.list)7 z( c2 r' |+ I6 Z7 ^
mode(name.list)  `  U# t! C: G% e  Y. D
names(name.list)4 `  n% T6 \) E

; D; @4 @3 d* n+ w7 Q




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