当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R matrix 矩阵


R语言 matrix 位于 base 包(package)。

说明

matrix 根据给定的一组值创建一个矩阵。

as.matrix 尝试将其参数转换为矩阵。

is.matrix 测试其参数是否是(严格)矩阵。

用法

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)

参数

data

一个可选的数据向量(包括列表或expression向量)。非原子级R对象被强制as.vector并丢弃所有属性。

nrow

所需的行数。

ncol

所需的列数。

byrow

合乎逻辑的。如果FALSE(默认)则矩阵按列填充,否则矩阵按行填充。

dimnames

矩阵的 dimnames 属性:NULL 或长度为 2 的 list 分别给出行名称和列名称。空列表被视为 NULL ,长度为 1 的列表被视为行名称。该列表可以命名,列表名称将用作维度的名称。

x

一个R对象。

...

要传递给方法或从方法传递的附加参数。

rownames.force

逻辑指示结果矩阵是否应具有字符(而不是 NULL ) rownames 。如果数据帧具有 ‘automatic’ row.names 或 zero-row 数据帧,则默认值 NA 使用 NULL 行名称。

细节

如果未给出 nrowncol 之一,则会尝试从 data 和另一个参数的长度推断它。如果两者均未给出,则返回 one-column 矩阵。

如果data中的元素太少而无法填充矩阵,则回收data中的元素。如果 data 的长度为零,则适当类型的 NA 用于原子向量(0 用于原始向量),NULL 用于列表。

如果 x 是向量并且具有长度为 2 的 "dim" 属性,则 is.matrix 返回 TRUE,否则返回 FALSE。请注意,通过此测试,data.frame 不是矩阵。该函数是通用的:您可以编写方法来处理特定类的对象,请参阅InternalMethods

as.matrix 是一个通用函数。如果仅存在原子列和任何非(数字/逻辑/复杂)列,则数据帧的方法将返回字符矩阵,将 as.vector 应用于因子,将 format 应用于其他非字符列。否则,将使用通常的强制层次结构(逻辑<整数<双精度<复数),例如,all-logical数据帧将被强制为逻辑矩阵,混合logical-integer将给出整数矩阵,等等。

as.matrix 的默认方法调用 as.vector(x) ,因此例如将因子强制为字符向量。

强制向量时,它会生成 one-column 矩阵,并将向量的名称(如果有)提升为矩阵的行名称。

is.matrixprimitive 函数。

print矩阵的方法给出了带有暗名称或索引的矩形布局。对于列表矩阵,长度不为 1 的条目以“⁠整数,7⁠’表示类型和长度。

注意

如果你只是想将向量转换为矩阵,比如

  dim(x) <- c(nx, ny)
  dimnames(x) <- list(row_names, col_names)

将避免重复x并保留class(x),这可能有用,例如,对于Date对象。

例子

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

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

data.matrix ,尝试转换为数字矩阵。

矩阵是二维 array 的特例。 inherits(m, "array") 对于 matrix m 为 true。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Matrices。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。