数学建模社区-数学中国
标题:
R语言入门基础之数组和列表
[打印本页]
作者:
数模天下
时间:
2012-12-24 14:04
标题:
R语言入门基础之数组和列表
数组(array)
一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的.
3 f+ ^ I4 C, x% ^8 ?+ H% {( G
数组函数是array(),语法是:array(dadta, dim),其中data必须是同一类型的数据,dim是各维的长度组成的向量。
( n6 V$ r1 L/ M. D1 M. R, F4 T
1、产生一个三维和四维数组。
. U7 v V/ t, v$ o& q& u9 |, B2 _
例1:xx <- array(1:24, c(3, 4, 2)) #一个三维数组
' {5 u, J8 R- q1 }8 H
例2:yy <- array(1:36, c(2, 3, 3, 2)) #一个四维数组
. d8 `( m) ?$ n; o# z
+ X3 _: \9 }4 }! Z6 c: S
2、dim()函数可将向量转化成数组或矩阵。
) ]: N: M3 c+ J+ p" o" g/ I6 G
例1:xx <- 1:24; dim(xx) <- c(3, 4, 2); xx #效果同array(1:24, c(3, 4, 2))
& y5 q8 W0 b/ i; ?& \3 h* `
例2:zz <- 1:10; dim(zz) <- c(2, 5); zz #效果同matrix(1:10, 2, 5)
: F. ^0 F! k3 \+ q
$ ^8 q, {' w* L z
列表(list)
( H; W# _3 K0 `* \: ]( P; R$ X8 H
向量、矩阵和数组的元素必须是同一类型的数据。一个数据对象需要包含不同的数据类型,它可以采用列表这种形式。
( e4 M% D% h8 f6 q
创建列表可用list()函数,语法是:list(name1 = component1, name2 = component2, ...)。
- s+ b) v4 L- C" [
1、创建一个列表
/ G. h" |) W: }( T" H0 X3 I- M$ s
例1: xx <- rep(1:2, 3:4)
: r% g0 G$ v* k3 r2 s5 D
yy <- c('Mr A', 'Mr B', 'Mr C', 'Mr D', 'Mr E', 'Mr D', 'Mr F')
, I t8 H% `0 a
zz <- 'discussion group'
, O* {2 [. Q1 v% J( z8 [: j
name.list <- list(group = xx, name = yy, decription = zz) #创建了一个名为"name.list"的列表
1 ^& Z1 ~. V$ o
name.list$n[name.list$g == 2]
! \, D, o" c; @) N5 K' o
length(name.list)
5 Z( E$ x6 m: D' Z. N8 Z( A+ b- g# G
mode(name.list)
# d2 D/ K: ~9 E8 L& A
names(name.list)
3 B! ]( H8 M8 O. T( Y1 |
& s& L& l5 m# X u
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5