attributes
位於 base
包(package)。 說明
這些函數訪問對象的屬性。下麵的第一種形式返回對象的屬性列表。替換形式使用賦值右側的列表作為對象的屬性(如果適用)。
用法
attributes(x)
attributes(x) <- value
mostattributes(x) <- value
參數
x |
任何R對象 |
value |
適當命名的屬性 |
細節
與 attr
不同,在 NULL
對象上設置屬性不是錯誤:它首先會被強製為空列表。
請注意,某些屬性(即 class
、 comment
、 dim
、 dimnames
、 names
、 row.names
和 tsp
)經過特殊處理,並且對可設置的值有限製。 (請注意,levels
並非如此,應通過 levels
替換函數設置因子。)
屬性在內部不存儲為列表,應將其視為集合而不是向量,即 attributes()
元素的順序並不重要。這也反映在 identical()
使用默認參數 attrib.as.set = TRUE
的行為上。屬性必須具有唯一的名稱(並且 NA
被視為 "NA"
,而不是缺失值)。
分配屬性首先刪除所有屬性,然後設置任何 dim
屬性,然後按給定順序設置其餘屬性:這可確保設置 dim
屬性始終先於 dimnames
屬性。
mostattributes
賦值特別注意 dim
、 names
和 dimnames
屬性,並且僅在已知有效時才對它們進行賦值,而 attributes
賦值將在任何無效時給出錯誤。它主要用於數組,在分類對象上應小心使用。例如,它不會檢查是否為數據幀正確分配了 row.names
。
配對列表的名稱不存儲為屬性,但會像屬性一樣進行報告(並且可以通過 attributes
的替換形式進行設置)。
NULL
對象不能具有屬性,嘗試分配它們會將對象提升為空列表。
attributes
的賦值和替換形式都是primitive 函數。
例子
x <- cbind(a = 1:3, pi = pi) # simple matrix with dimnames
attributes(x)
## strip an object's attributes:
attributes(x) <- NULL
x # now just a vector of length 6
mostattributes(x) <- list(mycomment = "really special", dim = 3:2,
dimnames = list(LETTERS[1:3], letters[1:5]), names = paste(1:6))
x # dim(), but not {dim}names
參考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
相關用法
- R attr 對象屬性
- R attach 將一組 R 對象附加到搜索路徑
- R apply 在數組邊距上應用函數
- R as.Date 日期與字符之間的轉換函數
- R agrep 近似字符串匹配(模糊匹配)
- R append 向量合並
- R assignOps 賦值運算符
- R as.POSIX* 日期時間轉換函數
- R asplit 按邊距分割數組/矩陣
- R abbreviate 縮寫字符串
- R all.equal 測試兩個對象是否(幾乎)相等
- R aperm 數組轉置
- R args 函數的參數列表
- R array2DF 將數組轉換為 DataFrame
- R autoload 按需加載包
- R all.names 查找表達式中的所有名稱
- R as.environment 強製環境對象
- R as.function 將對象轉換為函數
- R assign 為名稱分配值
- R any 有些值是真的嗎?
- R array 多路陣列
- R as.data.frame 強製數據幀
- R all 所有的值都是真的嗎?
- R file.path 構造文件路徑
- R grep 模式匹配和替換
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Object Attribute Lists。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。