主頁 > 知識庫 > R語言屬性知識點總結(jié)及實例

R語言屬性知識點總結(jié)及實例

熱門標簽:地圖標注推廣單頁 長春人工智能電銷機器人官網(wǎng) 西藏快速地圖標注地點 百應(yīng)ai電銷機器人鄭州 廈門crm外呼系統(tǒng)如何 n400電話申請多少錢 ai地圖標注 女王谷地圖標注 如何在地圖標注文字

屬性(attribute):R中對象具備的特性

特性描述了所代表的內(nèi)容以及R解釋該對象的方式

很多時候兩個對象之間的唯一差別在于它們的屬性不同

常見的屬性

屬性 描述
class 對象的類
comment 對象的注釋,一般用于描述對象的含義
dim 對象的維度
dimnames 與對象的每個維度相關(guān)的名字
names 返回對象的名字屬性.返回結(jié)果取決于對象的類型.對于數(shù)據(jù)框?qū)ο髸祷財?shù)據(jù)框的列名;對于數(shù)組會返回數(shù)組中被命名元素的名字
row,names 對象的行名(dimnames相關(guān))
tsp 對象的起始點,對于時間序列對象有用
levels 因子型變量的水平

查詢R中對象的屬性的標準方法:

對于對象x和屬性a:一般來說可以通過a(x)來查詢x的a屬性

大多數(shù)情況下,R中都有一個現(xiàn)成的獲取對象屬性或者改變對象屬性的函數(shù)

(這種改變對象屬性的方法會在當前環(huán)境中覆蓋對象的舊屬性,但不會影響閉環(huán)境中的變量屬性)

m = matrix(data = 1:12, nrow = 4, ncol = 3,
      dimnames = list(c("r1", "r2", "r3", "r4"),
              c("c1", "c2", "c3")))

通過attributes函數(shù)可以獲得一個包含對象所有屬性的列表

> attributes(m)
$dim
[1] 4 3

$dimnames
$dimnames[[1]]
[1] "r1" "r2" "r3" "r4"

$dimnames[[2]]
[1] "c1" "c2" "c3"
> dim(m)
[1] 4 3
> dimnames(m)
[[1]]
[1] "r1" "r2" "r3" "r4"

[[2]]
[1] "c1" "c2" "c3"
> colnames(m)
[1] "c1" "c2" "c3"
> rownames(m)
[1] "r1" "r2" "r3" "r4"

可以通過改變屬性將矩陣轉(zhuǎn)化為其他類的對象

例如移除對象的維度屬性

> dim(m) - NULL
> m
 [1] 1 2 3 4 5 6 7 8 9 10 11 12
 > class(m)
[1] "integer"
> typeof(m)
[1] "integer"

創(chuàng)建一個數(shù)組

> (a - array(1:12, dim = c(3:4)))
   [,1] [,2] [,3] [,4]
[1,]  1  4  7  10
[2,]  2  5  8  11
[3,]  3  6  9  12

定義一個包含相同對象的向量

> (b - 1:12)
 [1] 1 2 3 4 5 6 7 8 9 10 11 12

問題:在R總這兩個對象等價嗎?

> a == b
   [,1] [,2] [,3] [,4]
[1,] TRUE TRUE TRUE TRUE
[2,] TRUE TRUE TRUE TRUE
[3,] TRUE TRUE TRUE TRUE

數(shù)組的每個元素反映的是對兩個對象個元素比較的結(jié)果

R中all.equal函數(shù)

用來比較兩個對象的數(shù)據(jù)和維度一甄別兩個對象是否近乎相同,若不相同則會返回其原因

> all.equal(a, b)
[1] "Attributes:  Modes: list, NULL >"          "Attributes:  Lengths: 1, 0 >"            
[3] "Attributes:  names for target but not for current >" "Attributes:  current is not list-like >"      
[5] "target is matrix, current is numeric" 

若只是檢查兩個對象是不是完全一致,但不關(guān)心原因可以使用identical函數(shù)

> identical(a, b)
[1] FALSE


對于簡單類型,其類和類型是有緊密聯(lián)系的

對于符合型對象,兩者則可能不同

有時候,對象的類會隨著屬性列出.

不過,對于確定的類型(比如矩陣和數(shù)組),類是隱藏的.

可以用class函數(shù)來確定對象的類

可以用typeof函數(shù)查看對象的基本類型

可以改變R對象所屬的類.

例如,因子型向量轉(zhuǎn)換為整型數(shù)組,整型數(shù)組,轉(zhuǎn)換為因子

> (eye.colors - factor(c("brown", "blue", "blue", "green", "brown", "brown", "brown")))
[1] brown blue blue green brown brown brown
Levels: blue brown green
> (eye.colors.integer.vector - unclass(eye.colors))
[1] 2 1 1 3 2 2 2
attr(,"levels")
[1] "blue" "brown" "green"
> v - as.integer(c(1, 1, 1, 2, 1, 1, 2, 2, 3, 1))
> levels(v) - c("what", "who", "why")
> class(v) - "factor"
> v
 [1] what what what who what what who who why what
Levels: what who why

在調(diào)用class函數(shù)或者typedef函數(shù)時,對于有些對象,需要對其進行引用以防止其在調(diào)用時被執(zhí)行

例如:想要查詢符號x,而不是x所指向的對象的類型

> class(quote(v))
[1] "name"
> typeof(quote(v))
[1] "symbol"

但并不是所有類型的對象都可以采用該操作

例如:R中的any對象,...對象,字符串對象和允諾對象不能被隔離

(查看允諾對象的類型時會要求執(zhí)行該允諾對象,而這一過程會把它轉(zhuǎn)換為普通對象,從而使我們無法查詢到其類型信息)

到此這篇關(guān)于R語言屬性知識點總結(jié)及實例的文章就介紹到這了,更多相關(guān)R語言屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • R語言修改下載安裝包install.package的默認存儲路徑的操作方法
  • R語言求一行(列表、list)數(shù)據(jù)的平均數(shù)操作
  • R語言數(shù)據(jù)類型知識點總結(jié)
  • R語言基本語法知識點
  • 詳解R語言MCMC:Metropolis-Hastings采樣用于回歸的貝葉斯估計
  • R語言符號知識點匯總
  • 如何改變R語言默認存儲包的路徑

標簽:亳州 黔東 綿陽 內(nèi)江 渭南 廊坊 拉薩 興安盟

巨人網(wǎng)絡(luò)通訊聲明:本文標題《R語言屬性知識點總結(jié)及實例》,本文關(guān)鍵詞  語言,屬性,知識點,總結(jié),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《R語言屬性知識點總結(jié)及實例》相關(guān)的同類信息!
  • 本頁收集關(guān)于R語言屬性知識點總結(jié)及實例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章