1 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先,mode和typeof可以歸為一個(gè)類別,class是另外一個(gè)類別。mode和typeof描述的是數(shù)據(jù)在內(nèi)存中的存儲(chǔ)類型;class描述的是對象的類屬性(比如馬就是一個(gè)類,紅馬或者白馬就是子類,張三的白馬和李四的紅馬就是對象,馬這個(gè)類有什么屬性就是類屬性,就像顏色,體重等等)
因?yàn)闅v史的原因(更新過好多次,前身是S語言),所以R語言中數(shù)據(jù)對象的存儲(chǔ)類型變化過好多次。mode和storage.mode得到的是一種比較古老的類型,來自于S語言,其中storage.mode比mode要更精確
mode(3L) # numeric
storage.mode(3L) # integer
typeof 是一種最新的查看類型的函數(shù),針對于R語言而非S語言,而且更為精確,更為細(xì)致
storage.mode(`identical`) # function
storage.mode(`if`) # function
typeof(`identical`) # closure
typeof(`if`) # special
class和oldClass返回對象的類屬性。對于指定類屬性的數(shù)據(jù)對象,class和oldClass的結(jié)果是一樣的
a=data.frame(1:10)
oldClass(a) # "data.frame"
class(a) # "data.frame"
但是如果沒有指定數(shù)據(jù)對象的類屬性,那么oldClass返回NULL,而class會(huì)根據(jù)數(shù)據(jù)對象的存儲(chǔ)類型(type)與維度屬性來自動(dòng)給出一個(gè)類屬性
oldClass(3L) # NULL
class(3L) # integer
class(structure(3L, dim=1)) # array
class(structure(3L, dim=c(1,1))) # matrix
- 1 回答
- 0 關(guān)注
- 1130 瀏覽
添加回答
舉報(bào)