6 回答

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

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
mode storage.mode typeof 是一類,檢查變量類型,如list integer character等
關(guān)系是,從前往后,檢查精度越來(lái)越細(xì)。所以當(dāng)想看粗類別時(shí),就用mode,看細(xì)類別用typeof.
# 此時(shí)后兩者都能查到最細(xì)的程度
mode(1:5) # numeric
storage.mode(1:5) # integer
typeof(1:5) # integer
# 此時(shí)只有typeof能查到最細(xì)的程度
mode(`+`) # function
storage.mode(`+`) # function
typeof(`+`) # builtin
# 這里稍微解釋一下,`+`是一個(gè)函數(shù)
# 下面兩個(gè)例子等價(jià)
1+2 # 3
`+`(1,2) # 3
class和另外三個(gè)不是一個(gè)體系
對(duì)于有”class”屬性的變量,返回的就是這個(gè)屬性對(duì)應(yīng)的值
對(duì)于沒(méi)有”class”屬性的變量,則根據(jù)它的類型、維度來(lái)確定
# 有"class"屬性,只認(rèn)屬性
a <- 1:6
df <-data.frame(a,a+1)
class(df) # data.frame
class(df)<- "abc" # 隨便定義一個(gè)值
class(df) # abc
#沒(méi)有屬性,根據(jù)類型和dim屬性
ar <- array(1:4)
attributes(ar) # 數(shù)組dim為4
mat <- matrix(1:4)
attributes(mat) # 矩陣dim為4 1 兩個(gè)值
a <- 1:4 # 沒(méi)有dim
class(a) # integer
aar <- structure(a,dim=4) # 賦予類似array的dim
class(aar) # array
amat <- structure(a,dim=c(4,1)) # 賦予類似matrix的dim
class(amat) # matrix
class(list(1:4)) # list 不一樣類型

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
class多用于 級(jí)別
比如高級(jí)貨就是 first class,primary class等等,以此類推
kind 和sort 基本一樣,就像你說(shuō)的,譯為 種類,what kind of疑問(wèn),回答時(shí)用sort/kind of 則表示“有點(diǎn)點(diǎn)吧”,較為口語(yǔ)化。PS我在國(guó)外用了這么久沒(méi)發(fā)現(xiàn)區(qū)別···
type更為正規(guī)點(diǎn),多表示為 型號(hào)
很明顯的區(qū)別了吧···

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
css中 .名字 開(kāi)頭的 是class引用的
#名字 開(kāi)頭的 是匹配所有id為名字 的都
名字 開(kāi)頭的 是代表這個(gè)名字類型的對(duì)象都具有這個(gè)css
例如
.div{} <div class="div">
#div <div id="div">
div <div>

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
class是類的意思 就是說(shuō)給這個(gè)層定義一個(gè)類 用來(lái)控制這個(gè)層 而ID具有很多語(yǔ)言都共有的功能,比如JS里也用ID來(lái)標(biāo)記標(biāo)簽來(lái)控制,所以有時(shí)候在使用時(shí)會(huì)造成混亂,建議不必須用ID的時(shí)候不要用,用class就行了!至于那個(gè)type是類型的意思,用來(lái)說(shuō)明你的代碼是什么代碼,沒(méi)什么其他的!
- 6 回答
- 0 關(guān)注
- 2300 瀏覽
添加回答
舉報(bào)