R語言屬性知識(shí)點(diǎn)總結(jié)及實(shí)例
屬性(attribute):R中對(duì)象具備的特性
特性描述了所代表的內(nèi)容以及R解釋該對(duì)象的方式
很多時(shí)候兩個(gè)對(duì)象之間的唯一差別在于它們的屬性不同
常見的屬性
屬性 | 描述 |
---|---|
class | 對(duì)象的類 |
comment | 對(duì)象的注釋,一般用于描述對(duì)象的含義 |
dim | 對(duì)象的維度 |
dimnames | 與對(duì)象的每個(gè)維度相關(guān)的名字 |
names | 返回對(duì)象的名字屬性.返回結(jié)果取決于對(duì)象的類型.對(duì)于數(shù)據(jù)框?qū)ο髸?huì)返回?cái)?shù)據(jù)框的列名;對(duì)于數(shù)組會(huì)返回?cái)?shù)組中被命名元素的名字 |
row,names | 對(duì)象的行名(dimnames相關(guān)) |
tsp | 對(duì)象的起始點(diǎn),對(duì)于時(shí)間序列對(duì)象有用 |
levels | 因子型變量的水平 |
查詢R中對(duì)象的屬性的標(biāo)準(zhǔn)方法:
對(duì)于對(duì)象x和屬性a:一般來說可以通過a(x)來查詢x的a屬性
大多數(shù)情況下,R中都有一個(gè)現(xiàn)成的獲取對(duì)象屬性或者改變對(duì)象屬性的函數(shù)
(這種改變對(duì)象屬性的方法會(huì)在當(dāng)前環(huán)境中覆蓋對(duì)象的舊屬性,但不會(huì)影響閉環(huán)境中的變量屬性)
m = matrix(data = 1:12, nrow = 4, ncol = 3, dimnames = list(c("r1", "r2", "r3", "r4"), c("c1", "c2", "c3")))
通過attributes函數(shù)可以獲得一個(gè)包含對(duì)象所有屬性的列表
> 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)化為其他類的對(duì)象
例如移除對(duì)象的維度屬性
> 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)建一個(gè)數(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
定義一個(gè)包含相同對(duì)象的向量
> (b <- 1:12) [1] 1 2 3 4 5 6 7 8 9 10 11 12
問題:在R總這兩個(gè)對(duì)象等價(jià)嗎?
> a == b [,1] [,2] [,3] [,4] [1,] TRUE TRUE TRUE TRUE [2,] TRUE TRUE TRUE TRUE [3,] TRUE TRUE TRUE TRUE
數(shù)組的每個(gè)元素反映的是對(duì)兩個(gè)對(duì)象個(gè)元素比較的結(jié)果
R中all.equal函數(shù)
用來比較兩個(gè)對(duì)象的數(shù)據(jù)和維度一甄別兩個(gè)對(duì)象是否近乎相同,若不相同則會(huì)返回其原因
> 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"
若只是檢查兩個(gè)對(duì)象是不是完全一致,但不關(guān)心原因可以使用identical函數(shù)
> identical(a, b) [1] FALSE
類
對(duì)于簡(jiǎn)單類型,其類和類型是有緊密聯(lián)系的
對(duì)于符合型對(duì)象,兩者則可能不同
有時(shí)候,對(duì)象的類會(huì)隨著屬性列出.
不過,對(duì)于確定的類型(比如矩陣和數(shù)組),類是隱藏的.
可以用class函數(shù)來確定對(duì)象的類
可以用typeof函數(shù)查看對(duì)象的基本類型
可以改變R對(duì)象所屬的類.
例如,因子型向量轉(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ù)時(shí),對(duì)于有些對(duì)象,需要對(duì)其進(jìn)行引用以防止其在調(diào)用時(shí)被執(zhí)行
例如:想要查詢符號(hào)x,而不是x所指向的對(duì)象的類型
> class(quote(v)) [1] "name" > typeof(quote(v)) [1] "symbol"
但并不是所有類型的對(duì)象都可以采用該操作
例如:R中的any對(duì)象,...對(duì)象,字符串對(duì)象和允諾對(duì)象不能被隔離
(查看允諾對(duì)象的類型時(shí)會(huì)要求執(zhí)行該允諾對(duì)象,而這一過程會(huì)把它轉(zhuǎn)換為普通對(duì)象,從而使我們無法查詢到其類型信息)
到此這篇關(guān)于R語言屬性知識(shí)點(diǎn)總結(jié)及實(shí)例的文章就介紹到這了,更多相關(guān)R語言屬性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+OpenCV進(jìn)行人臉面部表情識(shí)別
這篇文章主要介紹了通過Python OpenCV實(shí)現(xiàn)對(duì)人臉面部表情識(shí)別,判斷人是否為笑臉,文中的示例代碼非常詳細(xì),需要的朋友可以參考一下2021-12-1214個(gè)用Python實(shí)現(xiàn)的Excel常用操作總結(jié)
自從學(xué)了Python后就逼迫自己不用Excel,所有操作用Python實(shí)現(xiàn)。目的是鞏固Python,與增強(qiáng)數(shù)據(jù)處理能力。本文為大家總結(jié)了14個(gè)用Python實(shí)現(xiàn)的Excel常用操作,需要的可以參考一下2022-06-06玩數(shù)據(jù)必備Python庫之numpy使用詳解
NumPy提供了許多高級(jí)的數(shù)值編程工具,如矩陣數(shù)據(jù)類型、矢量處理,以及精密的運(yùn)算庫,下面這篇文章主要給大家介紹了關(guān)于玩數(shù)據(jù)必備Python庫之numpy使用的相關(guān)資料,需要的朋友可以參考下2022-02-02對(duì)python_discover方法遍歷所有執(zhí)行的用例詳解
今天小編就為大家分享一篇對(duì)python_discover方法遍歷所有執(zhí)行的用例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02Python實(shí)現(xiàn)按目錄層級(jí)輸出文件名并保存為excel
當(dāng)我們發(fā)現(xiàn)電腦的內(nèi)存很滿,或平時(shí)工作中文件夾管理不清晰,導(dǎo)致里面的文件數(shù)據(jù)很雜亂,查找很不方便,一個(gè)一個(gè)文件夾去看去找然后刪除又很浪費(fèi)時(shí)間。本文將介紹如何利用Python實(shí)現(xiàn)按目錄層級(jí)輸出文件名并保存為excel,需要的可以參考一下2022-02-02使用seaborn繪制強(qiáng)化學(xué)習(xí)中的圖片問題
這篇文章主要介紹了使用seaborn繪制強(qiáng)化學(xué)習(xí)中的圖片問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Python中第三方庫Requests庫的高級(jí)用法詳解
雖然Python的標(biāo)準(zhǔn)庫中urllib2模塊已經(jīng)包含了平常我們使用的大多數(shù)功能,但是它的API使用起來讓人實(shí)在感覺不好。它已經(jīng)不適合現(xiàn)在的時(shí)代,不適合現(xiàn)代的互聯(lián)網(wǎng)了。而Requests的誕生讓我們有了更好的選擇。本文就介紹了Python中第三方庫Requests庫的高級(jí)用法。2017-03-03Python 模擬生成動(dòng)態(tài)產(chǎn)生驗(yàn)證碼圖片的方法
這篇文章主要介紹了Python 模擬生成動(dòng)態(tài)產(chǎn)生驗(yàn)證碼圖片的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02