當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。