丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 旅游指南

parameterclass R語言基于S3的面向?qū)ο缶幊?/h1>

歡迎關(guān)注天山情報(bào)。我們是一個(gè)專注于商業(yè)智能BI、人工智能AI和大數(shù)據(jù)分析與挖掘的垂直社區(qū)。學(xué)習(xí)、問答、求職一站搞定!對商業(yè)智能BI、大數(shù)據(jù)分析與挖掘、機(jī)器學(xué)習(xí)、python、R等數(shù)據(jù)領(lǐng)域感興趣的同學(xué)加微信:tstoutiao,邀請你加入數(shù)據(jù)愛好者交流群,數(shù)據(jù)愛好者都在這里。

Alexa的個(gè)人博客http://fens.me世界排名70k。

前言

對于R語言的面向?qū)ο缶幊?,與其他編程語言不同,R語言提供了三種類型的底層對象,一種是S3類型,一種是S4類型,一種是RC類型。

S3物體簡單、動態(tài),沒有明顯的結(jié)構(gòu)特征。S4對象是結(jié)構(gòu)化的和強(qiáng)大的;RC對象是2.12版之后使用的一種新類型,用于解決S3和S4的困難對象。

本文將從S3對象開始,介紹用R語言進(jìn)行面向?qū)ο缶幊痰募?xì)節(jié)。

目錄

S3物體游戲攻略

創(chuàng)建S3對象

泛型函數(shù)和方法調(diào)用

參見S3對象的功能

S3對象繼承

S3物體的缺點(diǎn)

S3物體的使用

1.S3物體游戲攻略

在R語言中,基于S3對象的面向?qū)ο缶幊淌且环N基于泛型函數(shù)的實(shí)現(xiàn)方法。泛型函數(shù)是一個(gè)特殊的函數(shù),它根據(jù)傳入對象的類型來決定調(diào)用哪個(gè)特定的方法?;赟3對象的面向?qū)ο缶幊滩煌谄渌Z言的面向?qū)ο缶幊?,它是動態(tài)函數(shù)調(diào)用的模擬實(shí)現(xiàn)。S3對象在R的早期開發(fā)包中被廣泛使用。

關(guān)于面向?qū)ο蟮慕榻B,請參考文章:

r語言面向?qū)ο缶幊?/p>

2.創(chuàng)建S3對象

本文的系統(tǒng)環(huán)境

Linux: Ubuntu服務(wù)器12 . 04 . 2 LTS 64位

R: 3.0.1 x86_64-pc-linux-gnu

注意:pryr只支持Linux系統(tǒng)環(huán)境

為了方便我們檢查對象的類型,pryr包作為一個(gè)輔助工具被引入。

1#裝載pryr包

2 >圖書館(pryr)

從變量創(chuàng)建S3對象

1 >x<。-1

2 >attr(x,' class')<。-" foo "

4 >x

5[1] 1

6attr(,“類”)

7[1]“foo”

9 >類別(x)

10[1]“foo”

11

12#使用pryr包的type函數(shù)檢查x的類型

13 >otype(x)

14[1]“S3”

S3對象是由結(jié)構(gòu)()函數(shù)創(chuàng)建的

1 >y <。-結(jié)構(gòu)(2,class = "foo ")

2

3 >y

4[1] 2

5attr(,“類”)

6[1]“foo”

8 >等級(y)

9[1]“foo”

10

11 >ot type(y)

12[1]“S3”

創(chuàng)建多類型S3對象

S3對象沒有明確的結(jié)構(gòu)關(guān)系,S3對象可以有多種類型。S3對象的類屬性可以是向量,包括多種類型。

1 >x<。-1

2 >attr(x,' class')<。- c("foo "," bar ")

3 >類別(x)

4[1]“foo”“bar”

5 >otype(x)

6[1]“S3”

3.泛型函數(shù)和方法調(diào)用

對于S3對象的使用,UseMethod()函數(shù)通常用于定義泛型函數(shù)的名稱,不同的方法調(diào)用是通過傳入?yún)?shù)的類屬性來確定的。

定義教師的一般職能

+使用UseMethod()定義教師通用函數(shù)

+以老師. xxx的語法格式定義老師對象的行為

+其中老師。默認(rèn)為默認(rèn)行為

1#使用UseMethod()定義教師通用函數(shù)

2 >教師<。-函數(shù)(x,...)使用方法(“教師”)

4#使用pryr包中的ftype()函數(shù)檢查教師的類型

5 >ftype(教師)

6[1]“S3”“通用”

8#定義教師內(nèi)部職能

9 >教師講座& lt-函數(shù)(x)打印(“講座”)

10 >教師作業(yè)& lt-函數(shù)(x)打印(“賦值”)

11 >教師。糾正& lt-函數(shù)(x)打印(“批改作業(yè)”)

12 >教師. default & lt;-function(x) print("你不是老師")

調(diào)用方法時(shí),通過傳入?yún)?shù)的類屬性來確定不同的方法調(diào)用。

定義一個(gè)變量A,將A的class屬性設(shè)置為講座

將變量a傳遞給教師泛型函數(shù)

函數(shù)教師的行為。講座()被稱為

1 >a<。-"老師"

2

3#設(shè)置教師變量的行為

4 >attr(a,' class') <。-"演講"

6#執(zhí)行老師的行為

7 >教師(a)

8[1]“講座”

當(dāng)然也可以直接調(diào)用老師定義的行為,如果這樣做,面向?qū)ο蠓庋b的意義就失效了。

1 >教師講座()

2[1]“講座”

4 >老師講課

5[1]“講座”

7 >教師()

8[1]“你不是老師”

4.看看S3物體的功能

當(dāng)我們使用S3對象進(jìn)行面向?qū)ο蠓庋b時(shí),我們可以使用methods()函數(shù)來查看S3對象中定義的內(nèi)部行為函數(shù)。

1#查看教師對象

2 >教師

3函數(shù)(x,...)使用方法(“教師”)

5#查看教師對象的內(nèi)部功能

6 >方法(教師)

老師。作業(yè)老師。批改老師。默認(rèn)老師。講座

通過方法()的generic.function參數(shù)匹配泛型函數(shù)名。

1 >方法(generic.function=predict)

2 [1] predict.ar* predict。Arima* predict.arima0*

預(yù)測,預(yù)測。HoltWinters* predict.lm

4 [7]預(yù)測.黃土*預(yù)測. mlm預(yù)測. nls*

5[10]predict . poly predict . PPR * predict . prcomp *

6[13]predict . princomp * predict . smooth . spline * predict . smooth . spline . fit *

7[16]預(yù)測。結(jié)構(gòu)*

9不可見的函數(shù)標(biāo)有星號

將類的名稱與方法()的類參數(shù)相匹配。

1 >方法(class=lm)

2[1]add 1 . lm * alias . lm * ANOVA . lm case . names . lm *

3[5]confint . lm * cooks . distance . lm * deviance . lm * dfbeta . lm *

4[9]dfbetas . lm * drop 1 . lm * dummy . coef . lm * effects . lm *

5[13]Extract AIc . lm * family . lm * formula . lm * hat values . lm

6[17]impact . lm * kappa . lm labels . lm * loglik . lm *

7[21]model . frame . lm model . matrix . lm nobs . lm * plot . lm

8[25]predict . lm print . lm proj . lm * QR . lm *

9[29]殘差. lm r standard . lm r student . lm simulate . lm *

10[33]summary . lm variable . names . lm * vcov . lm *

11

12個(gè)不可見的函數(shù)標(biāo)有星號

使用getAnywhere()函數(shù)查看所有函數(shù)。

1#查看老師講課功能

2 >getAnywhere(教師.講座)

找到了3個(gè)匹配“教師.講座”的單個(gè)對象

4它在以下地方被發(fā)現(xiàn)

5 .GlobalEnv

6注冊S3法為教師

7有價(jià)值

9功能(x)打印(“講座”)

10

11#檢查不可見函數(shù)predict.ppr

12 >predict.ppr

13錯(cuò)誤:找不到對象“predict.ppr”

14 >存在(“預(yù)測. ppr”)

15[1]假

16

17# getAnywhere()函數(shù)查找predict.ppr

18 >getAnywhere("predict.ppr ")

19A找到匹配“predict.ppr”的單個(gè)對象

20在以下地方發(fā)現(xiàn)

21個(gè)注冊S3方法,用于根據(jù)名稱空間統(tǒng)計(jì)數(shù)據(jù)進(jìn)行預(yù)測

22命名空間:stats

23有價(jià)值

24

25函數(shù)(對象,新數(shù)據(jù),...)

26{

27 if(缺失(newdata))

28返回(安裝(物體))

29 if(!is.null(object$terms)) {

30 newdata <。- as.data.frame(newdata)

31 rn <。-row . name(new data)

32條款& lt- delete.response(object$terms)

33 m <。- model.frame(Terms,newdata,na.action = na .省略,

34 xlev = object$xlevels)

35 if(!is . null(cl & lt;- attr(術(shù)語,“數(shù)據(jù)類”))

36 .checkMFClasses(cl,m)

37 keep & lt- match(row.names(m),rn)

38 x <。- model.matrix(Terms,m,contrasts.arg = object$contrasts)

39 }

40 else {

41 x <。- as.matrix(newdata)

42 keep & lt- seq_len(nrow(x))

43 rn <。- dimnames(x)[[1L]]

44 }

45 if (ncol(x)!= object$p)

46停止(“x”中的列數(shù)錯(cuò)誤)

47 res <。-矩陣(NA,長度(keep),對象$q,dimnames = list(rn,

48 object$ynames))

49 res[keep,]& lt;-矩陣(。Fortran(C_pppred,as.integer(nrow(x)),

50 as.double(x),as.double(object$smod),y = double(nrow(x) *

51 object$q),double(2 * object $ smod[4L])$ y,ncol = object$q)

52滴(res)

53}

54<。字節(jié)碼:0x 0000000000 df 6 c2d 0 > 0。

55<。環(huán)境:名稱空間:stats>。

還可以使用getS3method()函數(shù)查看不可見的函數(shù)

1# getS3method()函數(shù)查找predict.ppr

2 >gets 3方法(“預(yù)測”、“ppr”)

3函數(shù)(對象,新數(shù)據(jù),...)

4{

5 if(缺失(newdata))

6返回(安裝(物體))

7 if(!is.null(object$terms)) {

8 newdata <。- as.data.frame(newdata)

9 rn <。-row . name(new data)

10項(xiàng)條款& lt- delete.response(object$terms)

11 m <。- model.frame(Terms,newdata,na.action = na .省略,

12 xlev = object$xlevels)

13 if(!is . null(cl & lt;- attr(術(shù)語,“數(shù)據(jù)類”))

14 .checkMFClasses(cl,m)

15保留& lt- match(row.names(m),rn)

16 x <。- model.matrix(Terms,m,contrasts.arg = object$contrasts)

17 }

18 else {

19 x <。- as.matrix(newdata)

20保留& lt- seq_len(nrow(x))

21 rn <。- dimnames(x)[[1L]]

22 }

23 if (ncol(x)!= object$p)

24停止(“x”中的列數(shù)錯(cuò)誤)

25 res <。-矩陣(NA,長度(keep),對象$q,dimnames = list(rn,

26 object$ynames))

27 res[keep,]& lt;-矩陣(。Fortran(C_pppred,as.integer(nrow(x)),

28 as.double(x),as.double(object$smod),y = double(nrow(x) *

29 object$q),double(2 * object $ smod[4L])$ y,ncol = object$q)

30滴(res)

31}

32<。字節(jié)碼:0x 0000000000 df 6 c2d 0 > 0。

33<。環(huán)境:名稱空間:stats>。

5.5的繼承關(guān)系。S3物體

S3對象有一個(gè)非常簡單的繼承模式,這是通過NextMethod()函數(shù)實(shí)現(xiàn)的。

定義節(jié)點(diǎn)通用函數(shù)

1 >節(jié)點(diǎn)<。-函數(shù)(x) UseMethod("node ",x)

2 >node.default & lt-函數(shù)(x)“默認(rèn)節(jié)點(diǎn)”

4#父親功能

5 >node .父親節(jié)& lt-函數(shù)(x) c(“父親”)

7#子函數(shù)通過NextMethod()函數(shù)指向父函數(shù)

8 >node.son & lt-函數(shù)(x) c("son ",NextMethod())

10#定義n1

11 >n1 <。-結(jié)構(gòu)(1,class = c("父親"))

12#在node函數(shù)中傳遞n1,執(zhí)行node .父親()函數(shù)

13 >節(jié)點(diǎn)(n1)

14[1]“父親”

15

16#定義n2并將class屬性設(shè)置為2

17 >n2 <。-結(jié)構(gòu)(1,class = c("兒子","父親"))

18#將n2傳遞給node函數(shù),并執(zhí)行node.son()函數(shù)和node .父親()函數(shù)

19 >節(jié)點(diǎn)(n2)

20[1]“兒子”“父親”

通過將n2個(gè)參數(shù)傳遞給node()函數(shù),首先執(zhí)行node.son(),然后通過NextMethod()函數(shù)連續(xù)執(zhí)行node .父親節(jié)()函數(shù)。其實(shí)就是模擬一個(gè)子函數(shù)調(diào)用一個(gè)父函數(shù)的過程,在面向?qū)ο缶幊讨袑?shí)現(xiàn)繼承。

6.6的缺點(diǎn)。S3物體

從上面對S3對象的介紹來看,S3對象不是一個(gè)完整的面向?qū)ο蟮膶?shí)現(xiàn),而是一個(gè)由泛型函數(shù)模擬的面向?qū)ο蟮膶?shí)現(xiàn)。

S3易于使用,但在實(shí)際的面向?qū)ο缶幊踢^程中,當(dāng)對象關(guān)系具有一定的復(fù)雜性時(shí),S3對象所表達(dá)的含義就會變得不清晰。

S3封裝的內(nèi)部函數(shù)可以繞過泛型函數(shù)的檢查直接調(diào)用。

S3參數(shù)的類屬性可以任意設(shè)置,無需預(yù)處理檢查。

S3參數(shù)只能通過調(diào)用class屬性來調(diào)用,其他屬性不會被class()函數(shù)執(zhí)行。

當(dāng)S3參數(shù)的類屬性有多個(gè)值時(shí),將根據(jù)程序賦值順序調(diào)用第一個(gè)合法函數(shù)。

因此,S3只能是一個(gè)簡單的面向?qū)ο蟮腞語言實(shí)現(xiàn)。

7.使用7。S3物體

S3對象系統(tǒng)在R語言的早期發(fā)展中被廣泛使用。在基礎(chǔ)包中,有許多S3對象。

基本包裝的S3物件

1#均值函數(shù)

2 >意思是

3函數(shù)(x,...)

4使用方法(“平均值”)

7 >ftype(平均值)

8[1]“S3”“通用”

10# t功能

11 >ft type(t)

12[1]“S3”“通用”

13

14#繪圖功能

15 >ftype(繪圖)

16[1]“S3”“通用”

一個(gè)定制的S3物件

1#定義數(shù)字變量a

2 >a <。- 1

3#變量a的類是數(shù)字的

4 >a類

5[1]“數(shù)字”

7#定義通用函數(shù)f1

8 >f1 <。-函數(shù)(x) {

9+ a <。- 2

10+ UseMethod("f1 ")

11+ }

12

13#定義f1的內(nèi)部功能

14 >f1.numeric & lt-函數(shù)(x) a

15

16#將變量a傳遞給f1()

17 >f1(a)

18[1] 2

19

20#將數(shù)字99傳遞給f1()

21 >f1(99)

22[1] 2

23

24#定義f1的內(nèi)部功能

25 >f1.character & lt-函數(shù)(x)粘貼(“char”,x)

26

27#將字符a傳遞給f1()

28 >f1(“a”)

29[1]“char a”

這樣,我們對S3對象系統(tǒng)有了全面的了解,開始了R語言的面向?qū)ο缶幊讨贰?/p>

美好的過去:

r語言信用記分卡:探索性數(shù)據(jù)分析

t檢驗(yàn)是統(tǒng)計(jì)學(xué)中的一種檢驗(yàn)方法,是基于r

完成R語言中文社區(qū)2018年年終文章(作者)

R語言中文社區(qū)2018年年終文章(類型文章)

微信官方賬號可以在后臺回復(fù)關(guān)鍵詞學(xué)習(xí)

關(guān)于爬行動物和爬行動物三大案例的回復(fù)?;貜?fù)Python 1小時(shí)破冰入門?;貜?fù)數(shù)據(jù)挖掘R語言錄入和數(shù)據(jù)挖掘?;貜?fù)人工智能三個(gè)月?;貜?fù)數(shù)據(jù)分析師的成長路徑?;貜?fù)機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)的商業(yè)應(yīng)用。回復(fù)數(shù)據(jù)科學(xué)。數(shù)據(jù)科學(xué)實(shí)際上是對普通算法的回復(fù)。常見的數(shù)據(jù)挖掘算法

1.《parameterclass R語言基于S3的面向?qū)ο缶幊獭吩曰ヂ?lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《parameterclass R語言基于S3的面向?qū)ο缶幊獭穬H供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/junshi/1229543.html

上一篇

貨車司機(jī)被罰后服農(nóng)藥自殺 究竟是什么壓垮了他? 登上網(wǎng)絡(luò)熱搜了!

下一篇

泰國獼猴胖成球被強(qiáng)制減肥 體重飆升至40斤 目前是什么情況?

黃段 生命澆灌育桃李,園丁逆行培芬芳 !致敬東渡二小最美教師黃江林

肇慶市中小學(xué)教師繼續(xù)教育網(wǎng) 第四屆粵港澳大灣區(qū)小學(xué)英語閱讀素養(yǎng)提升專題研討會,10月重磅開啟!

  • 肇慶市中小學(xué)教師繼續(xù)教育網(wǎng) 第四屆粵港澳大灣區(qū)小學(xué)英語閱讀素養(yǎng)提升專題研討會,10月重磅開啟!
  • 肇慶市中小學(xué)教師繼續(xù)教育網(wǎng) 第四屆粵港澳大灣區(qū)小學(xué)英語閱讀素養(yǎng)提升專題研討會,10月重磅開啟!
  • 肇慶市中小學(xué)教師繼續(xù)教育網(wǎng) 第四屆粵港澳大灣區(qū)小學(xué)英語閱讀素養(yǎng)提升專題研討會,10月重磅開啟!

28歲姑娘當(dāng)了39次伴娘 條件不錯(cuò)卻至今沒有對象

  • 28歲姑娘當(dāng)了39次伴娘 條件不錯(cuò)卻至今沒有對象
  • 28歲姑娘當(dāng)了39次伴娘 條件不錯(cuò)卻至今沒有對象
  • 28歲姑娘當(dāng)了39次伴娘 條件不錯(cuò)卻至今沒有對象
學(xué)生傷害教師致死 究竟是有多大的仇才做出如此之事?

學(xué)生傷害教師致死 究竟是有多大的仇才做出如此之事?

11月14日12日下午4時(shí),沅江三中一名學(xué)生打傷一名教師致死。目前,犯罪嫌疑人羅墨杰已被公安機(jī)關(guān)控制,案件正在進(jìn)一步調(diào)查中。 2017年11月12日星期日,在這樣的休息日,對于湖南省沅江市第三中學(xué)的老師鮑某來說,無疑是一個(gè)悲劇的日子。周日下午,...

查找網(wǎng)名 一個(gè)比 vlookup 好用10倍的查找函數(shù),你知道嗎?

  • 查找網(wǎng)名 一個(gè)比 vlookup 好用10倍的查找函數(shù),你知道嗎?
  • 查找網(wǎng)名 一個(gè)比 vlookup 好用10倍的查找函數(shù),你知道嗎?
  • 查找網(wǎng)名 一個(gè)比 vlookup 好用10倍的查找函數(shù),你知道嗎?

廣安市教育局 關(guān)于廣安市2019年公開招聘中學(xué)英語教師的公告

根據(jù)事業(yè)單位公開招聘工作人員的有關(guān)規(guī)定和公開、平等、競爭、擇優(yōu)的原則,我市決定面向社會公開招聘183名中學(xué)英語教師(職業(yè)預(yù)備性質(zhì))?,F(xiàn)將有關(guān)事項(xiàng)公告如下: 一、招聘職位 詳見2019年廣安公考中學(xué)英語教師崗位表(詳見附件)。 二、招聘對象和條件...

英語周報(bào)教師網(wǎng) 《英語周報(bào)·教師版(高中)》2019-2020學(xué)年21- 40期 目錄及摘要

  • 英語周報(bào)教師網(wǎng) 《英語周報(bào)·教師版(高中)》2019-2020學(xué)年21- 40期 目錄及摘要
  • 英語周報(bào)教師網(wǎng) 《英語周報(bào)·教師版(高中)》2019-2020學(xué)年21- 40期 目錄及摘要
  • 英語周報(bào)教師網(wǎng) 《英語周報(bào)·教師版(高中)》2019-2020學(xué)年21- 40期 目錄及摘要

女子闖進(jìn)課堂稱被男教師迷奸 廣州從化警方通報(bào)!

女子闖進(jìn)課堂稱被男教師迷奸,廣州從化警方通報(bào)!...