R-次元数による配列と配列の下付き
9325 ワード
ベクトルが配列になり、次元数を指定する必要があります.次のdimで指定します.
> 1:15->z> c(3,5)->dim(z)> z [,1] [,2] [,3] [,4] [,5][1,] 1 4 7 10 13[2,] 2 5 8 11 14[3,] 3 6 9 12 15
arryはより便利に>array(1:15,dim=c(3,5),dimnames="mmm")[,1][,2][,3][,4][,5][1,]1 4 4 7 10 13[2,]2 5 8 11 14[3,]3 6 9 12 15
matrixを使ってもいいですよ
> matrix(1:15,nrow=3,ncol=5,byrow=TRUE)->Z> z [,1] [,2] [,3] [,4] [,5][1,] 1 4 7 10 13[2,] 2 5 8 11 14[3,] 3 6 9 12 15>
byrowは行ごとに配置するか列ごとに配置するかを示します
下付き文字
> z[3,1][1] 3> z[3,][1] 3 6 9 12 15> z[,5][1] 13 14 15>
> z[,2:5] [,1] [,2] [,3] [,4][1,] 4 7 10 13[2,] 5 8 11 14[3,] 6 9 12 15>
(1,2)、(3,4)、(1,3)の要素をとり、位置を配列に定義する
> matrix(c(1,2,3,4,1,3),ncol=2,byrow=TRUE)->xx> z[xx][1] 4 12 7> z [,1] [,2] [,3] [,4] [,5][1,] 1 4 7 10 13[2,] 2 5 8 11 14[3,] 3 6 9 12 15>
matrix {base}
R Documentation
Matrices
Description
Usage
Arguments
an optional data vector (including a list or
the desired number of rows.
the desired number of columns.
logical. If
A
an R object.
additional arguments to be passed to or from methods.
logical indicating if the resulting matrix should have character (rather than
Details
If one of
If there are too few elements in
When coercing a vector, it produces a one-column matrix, and promotes the names (if any) of the vector to the rownames of the matrix.
Note
If you just want to convert a vector to a matrix, something like
will avoid duplicating
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
See Also
A matrix is the special case of a two-dimensional
Examples
Multi-way Arrays
Description
Creates or tests for arrays.
Usage
Arguments
a vector (including a list or
the dim attribute for the array to be created, that is a vector of length one or more giving the maximal indices in each dimension.
either
an R object.
additional arguments to be passed to or from methods.
Details
An array in R can have one, two or more dimensions. It is simply a vector which is stored with additional attributes giving the dimensions (attribute
A two-dimensional array is the same thing as a
One-dimensional arrays often look like vectors, but may be handled differently by some functions:
The
The
Value
Note
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
See Also
Examples
> 1:15->z> c(3,5)->dim(z)> z [,1] [,2] [,3] [,4] [,5][1,] 1 4 7 10 13[2,] 2 5 8 11 14[3,] 3 6 9 12 15
arryはより便利に>array(1:15,dim=c(3,5),dimnames="mmm")[,1][,2][,3][,4][,5][1,]1 4 4 7 10 13[2,]2 5 8 11 14[3,]3 6 9 12 15
matrixを使ってもいいですよ
> matrix(1:15,nrow=3,ncol=5,byrow=TRUE)->Z> z [,1] [,2] [,3] [,4] [,5][1,] 1 4 7 10 13[2,] 2 5 8 11 14[3,] 3 6 9 12 15>
byrowは行ごとに配置するか列ごとに配置するかを示します
下付き文字
> z[3,1][1] 3> z[3,][1] 3 6 9 12 15> z[,5][1] 13 14 15>
> z[,2:5] [,1] [,2] [,3] [,4][1,] 4 7 10 13[2,] 5 8 11 14[3,] 6 9 12 15>
(1,2)、(3,4)、(1,3)の要素をとり、位置を配列に定義する
> matrix(c(1,2,3,4,1,3),ncol=2,byrow=TRUE)->xx> z[xx][1] 4 12 7> z [,1] [,2] [,3] [,4] [,5][1,] 1 4 7 10 13[2,] 2 5 8 11 14[3,] 3 6 9 12 15>
matrix {base}
R Documentation
Matrices
Description
matrix
creates a matrix from the given set of values. as.matrix
attempts to turn its argument into a matrix. is.matrix
tests if its argument is a (strict) matrix. Usage
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
dimnames = NULL)
as.matrix(x, ...)
## S3 method for class 'data.frame'
as.matrix(x, rownames.force = NA, ...)
is.matrix(x)
Arguments
data
an optional data vector (including a list or
expression
vector). Other R objects are coerced by as.vector
. nrow
the desired number of rows.
ncol
the desired number of columns.
byrow
logical. If
FALSE
(the default) the matrix is filled by columns, otherwise the matrix is filled by rows. dimnames
A
dimnames
attribute for the matrix: NULL
or a list
of length 2 giving the row and column names respectively. An empty list is treated as NULL
, and a list of length one as row names. The list can be named, and the list names will be used as names for the dimensions. x
an R object.
...
additional arguments to be passed to or from methods.
rownames.force
logical indicating if the resulting matrix should have character (rather than
NULL
) rownames
. The default, NA
, uses NULL
rownames if the data frame has ‘automatic’ row.names or for a zero-row data frame. Details
If one of
nrow
or ncol
is not given, an attempt is made to infer it from the length of data
and the other parameter. If neither is given, a one-column matrix is returned. If there are too few elements in
data
to fill the matrix, then the elements in data
are recycled. If data
has length zero, NA
of an appropriate type is used for atomic vectors ( 0
for raw vectors) and NULL
for lists. is.matrix
returns TRUE
if x
is a vector and has a "dim"
attribute of length 2) and FALSE
otherwise. Note that a data.frame
is not a matrix by this test. The function is generic: you can write methods to handle specific classes of objects, see InternalMethods. as.matrix
is a generic function. The method for data frames will return a character matrix if there is any non-(numeric/logical/complex) column, applying format
to non-character columns. Otherwise, the usual coercion hierarchy (logical < integer < double < complex) will be used, e.g., all-logical data frames will be coerced to a logical matrix, mixed logical-integer will give a integer matrix, etc. When coercing a vector, it produces a one-column matrix, and promotes the names (if any) of the vector to the rownames of the matrix.
is.matrix
is a primitive function. Note
If you just want to convert a vector to a matrix, something like
dim(x) <- c(nx, ny)
dimnames(x) <- list(row_names, col_names)
will avoid duplicating
x
. References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
See Also
data.matrix
, which attempts to convert to a numeric matrix. A matrix is the special case of a two-dimensional
array
. Examples
is.matrix(as.matrix(1:10))
!is.matrix(warpbreaks)# data.frame, NOT matrix!
warpbreaks[1:10,]
as.matrix(warpbreaks[1:10,]) #using as.matrix.data.frame(.) method
# Example of setting row and column names
mdat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol=3, byrow=TRUE,
dimnames = list(c("row1", "row2"),
c("C.1", "C.2", "C.3")))
mdat
Multi-way Arrays
Description
Creates or tests for arrays.
Usage
array(data = NA, dim = length(data), dimnames = NULL)
as.array(x, ...)
is.array(x)
Arguments
data
a vector (including a list or
expression
vector) giving data to fill the array. Other objects are coerced by as.vector
. dim
the dim attribute for the array to be created, that is a vector of length one or more giving the maximal indices in each dimension.
dimnames
either
NULL
or the names for the dimensions. This is a list with one component for each dimension, either NULL
or a character vector of the length given by dim
for that dimension. The list can be named, and the list names will be used as names for the dimensions. If the list is shorter than the number of dimensions, it is extended by NULL
s to the length required x
an R object.
...
additional arguments to be passed to or from methods.
Details
An array in R can have one, two or more dimensions. It is simply a vector which is stored with additional attributes giving the dimensions (attribute
"dim"
) and optionally names for those dimensions (attribute "dimnames"
). A two-dimensional array is the same thing as a
matrix
. One-dimensional arrays often look like vectors, but may be handled differently by some functions:
str
does distinguish them in recent versions of R. The
"dim"
attribute is an integer vector of length one or more containing non-negative values: the product of the values must match the length of the array. The
"dimnames"
attribute is optional: if present it is a list with one component for each dimension, either NULL
or a character vector of the length given by the element of the "dim"
attribute for that dimension. is.array
is a primitive function. Value
array
returns an array with the extents specified in dim
and naming information in dimnames
. The values in data
are taken to be those in the array with the leftmost subscript moving fastest. If there are too few elements in data
to fill the array, then the elements in data
are recycled. If data
has length zero, NA
of an appropriate type is used for atomic vectors ( 0
for raw vectors) and NULL
for lists. as.array
is a generic function for coercing to arrays. The default method does so by attaching a dim
attribute to it. It also attaches dimnames
if x
has names
. The sole purpose of this is to make it possible to access the dim[names]
attribute at a later time. is.array
returns TRUE
or FALSE
depending on whether its argument is an array (i.e., has a dim
attribute of positive length) or not. It is generic: you can write methods to handle specific classes of objects, see InternalMethods. Note
is.array
is a primitive function. References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
See Also
aperm
, matrix
, dim
, dimnames
. Examples
dim(as.array(letters))
array(1:3, c(2,4)) # recycle 1:3 "2 2/3 times"
# [,1] [,2] [,3] [,4]
#[1,] 1 3 2 1
#[2,] 2 1 3 2