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


R row.names 獲取和設置 DataFrame 的行名稱


R語言 row.names 位於 base 包(package)。

說明

所有 DataFrame 都有行名稱、長度為沒有重複值或缺失值的行數的字符向量。

有用於獲取和設置行名稱的通用函數,以及數組的默認方法。這裏的說明是針對data.frame方法的。

`.rowNamesDF<-` 是一個(非通用替換)函數,用於設置數據幀的行名稱,帶有額外參數 make.names 。此函數僅作為解決方法存在,因為我們無法在不破壞現有包中的遺留代碼的情況下輕鬆更改 row.names<- 泛型。

用法

row.names(x)
row.names(x) <- value
.rowNamesDF(x, make.names=FALSE) <- value

參數

x

"data.frame" 的對象,或已定義方法的任何其他類。

make.names

logical ,即 FALSE, NA, TRUE 之一,指示如果指定的行名稱(即 value )無效(例如重複或 NA )應該發生什麽。默認值(向後兼容) FALSE 將發出錯誤信號,其中 NA 將 “automatic” 行名稱,而 TRUE 將調用 make.names(value, unique=TRUE) 來構造有效名稱。

value

除非是整數向量,否則要強製轉換為字符的對象。它的長度(強製後)應與 x 的行數相同,沒有重複值或缺失值。 NULL 也是允許的:請參閱“詳細信息”。

細節

DataFrame (根據定義)具有行名稱向量,其長度為 DataFrame 中的行數,並且既不包含缺失值也不包含重複值。如果軟件添加了行名稱序列來滿足此要求,則它們被視為‘automatic’。

行名稱當前允許是整數或字符,但為了向後兼容(與R<= 2.4.0)row.names將始終返回一個字符向量。 (使用attr(x, "row.names")如果您需要檢索一組整數值的行名稱。)

使用 NULL 作為值會將行名稱重置為 seq_len(nrow(x)) ,視為 ‘automatic’。

row.names 返回一個字符向量。

row.names<- 返回行名稱已更改的 DataFrame 。

注意

row.names 與數組的 rownames 類似,它有一個為數組參數調用 rownames 的方法。

n > 21:n 形式的行名稱在內部以緊湊形式存儲,這可以從 C 代碼或通過解析看到,但絕不會通過 row.namesattr(x, "row.names") 看到。此外,此類名稱的某些名稱被標記為‘automatic’,並由as.matrixdata.matrix(以及可能的其他函數)以不同方式處理。 (所有zero-row數據幀都被視為具有自動行名稱。)

例子

## To illustrate the note:
df <- data.frame(x = c(TRUE, FALSE, NA, NA), y = c(12, 34, 56, 78))
row.names(df) <- 1 : 4
attr(df, "row.names") #> 1:4
deparse(df) # or dput(df)
##--> c(NA, 4L) : Compact storage, *not* regarded as automatic.

row.names(df) <- NULL
attr(df, "row.names") #> 1:4
deparse(df) # or dput(df) -- shows
##--> c(NA, -4L) : Compact storage, regarded as automatic.

參考

Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

也可以看看

data.framerownamesnames

.row_names_info 用於內部表示。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Get and Set Row Names for Data Frames。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。