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


R cbind2 按列或行組合兩個對象


R語言 cbind2 位於 methods 包(package)。

說明

組合兩個類似矩陣R按列的對象 (cbind2) 或行 (rbind2)。這些是具有默認方法的 (S4) 通用函數。

用法

cbind2(x, y, ...)
rbind2(x, y, ...)

參數

x

任何R對象,通常是類似矩陣的。

y

任何R對象,通常類似於x,或完全缺失。

...

方法的可選參數。

細節

cbind2 ( rbind2 ) 的主要用途是當滿足這兩個要求時由 cbind() ( rbind() ) 遞歸調用:

  • 至少有一個參數是 S4 對象,並且

  • S3 調度失敗(請參閱 cbind 下的調度部分)。

cbind2rbind2 上的方法有效地定義了組合異構參數集時的類型提升策略。在同類情況下,所有對象都派生自某個 S4 類,可以通過外部定義的 S4 cbind ( rbind ) 泛型通過 ... 參數上的 S4 分派來處理。

由於(由於遺留原因)首先嘗試 S3 調度,因此通常最好在 S4 類的 cbind ( rbind ) 上另外定義一個 S3 方法。當參數包含 S4 類的對象以及不存在 S3 方法的類的參數時,將調用 S3 方法。此外,如果有一個參數選擇不同的 S3 方法(例如 data.frame 的方法),則該 S3 方法會在調度中引入歧義,從而觸發遞歸回退到 cbind2 (rbind2 )。否則,將調用另一個 S3 方法,這可能不合適。

組合 xy 的列(或行)的矩陣(或類似矩陣的對象)。請注意,方法必須從 xy 的相應列名和行名構造 colnamesrownames (但不能從解析參數名稱,例如 cbind(..., deparse.level = d) 中的 )。

方法

signature(x = "ANY", y = "ANY")

默認方法使用R的內部代碼。

signature(x = "ANY", y = "missing")

一個參數的默認方法使用R的內部代碼。

例子

cbind2(1:3, 4)
m <- matrix(3:8, 2,3, dimnames=list(c("a","b"), LETTERS[1:3]))
cbind2(1:2, m) # keeps dimnames from m

## rbind() and cbind() now make use of rbind2()/cbind2() methods
setClass("Num", contains="numeric")
setMethod("cbind2", c("Num", "missing"),
          function(x,y, ...) { cat("Num-miss--meth\n"); as.matrix(x)})
setMethod("cbind2", c("Num","ANY"), function(x,y, ...) {
    cat("Num-A.--method\n") ; cbind(getDataPart(x), y, ...) })
setMethod("cbind2", c("ANY","Num"), function(x,y, ...) {
    cat("A.-Num--method\n") ; cbind(x, getDataPart(y), ...) })

a <- new("Num", 1:3)
trace("cbind2")
cbind(a)
cbind(a, four=4, 7:9)# calling cbind2() twice

cbind(m,a, ch=c("D","E"), a*3)
cbind(1,a, m) # ok with a warning
untrace("cbind2")

也可以看看

cbindrbind;此外, Matrix 包中的cBindrBind

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Combine two Objects by Columns or Rows。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。