乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      30 天學(xué)會(huì)R DAY 12:自定義函數(shù)的初步學(xué)習(xí)

       妙趣橫生統(tǒng)計(jì)學(xué) 2019-12-08

           第12 自定義函數(shù)的初步學(xué)習(xí)

      R語言中,絕大多數(shù)的函數(shù),是軟件提供的,或者R包提供的,可以直接調(diào)用R后臺(tái)的算法,幫助我們進(jìn)行計(jì)算。比如我們計(jì)算標(biāo)準(zhǔn)差sd時(shí),無需采用公式去計(jì)算,而是調(diào)用sd()函數(shù)即可。但R語言也提供了一種R函數(shù)的編寫方法,實(shí)在沒有找到相應(yīng)方便函數(shù)時(shí),可以自行編寫函數(shù),方便計(jì)算,我們稱之為自定義函數(shù)或者自編函數(shù)。R入門者實(shí)際上無需自己去編寫函數(shù),這里只介紹入門,便于以后進(jìn)行深入學(xué)習(xí)。

      · 11天最后練習(xí)題及其答案

      練習(xí)題:

      對(duì)于不同的數(shù)據(jù),以計(jì)算一個(gè)新變量,

      當(dāng)v1變量<3時(shí)候,這個(gè)新變量是原來變量i次方;

      當(dāng)v1變量為<4時(shí)候,這個(gè)變量是原變量的i-1次方;

      當(dāng)v1<5的時(shí)候,這個(gè)變量是原變量的i-2次方;

      當(dāng)v1>=5的時(shí)候,這個(gè)變量是上一個(gè)變量值+10;

      思考答案:

      for(i in 1:length(z$v1)){

       if(z$v1[i]<3){

         z$v7[i]<-z$v1[i]^i

         } else if(z$v1[i]<4){

            z$v7[i]<-z$v1[i]^(i-1)

         } else if(z$v1[i]<5){

           z$v7[i]<-z$v1[i]^(i-2)

         }

          else {

           z$v7[i]<-z$v7[i-1]+10

         }

      }

      z

      、自定義函數(shù)案例

      # 繪制計(jì)算兩者的函數(shù);

      function1 <- function(x,y){

       s<-x+y

      return(s)

      }

      > z<-data.frame(v1=1:5,v2=6:10,v3=11:15)  #產(chǎn)生數(shù)據(jù)框

      > z

      >function1(z$v1,z$v2)  #對(duì)v1v2

      z$s= function1(z$v1,z$v2)   # v1和v2求和作為z數(shù)據(jù)框新的變量

      > z

       v1 v2 v3  s

      1  1  6 11  7

      2  2  7 12  9

      3  3  8 13 11

      4  4  9 14 13

      5  5 10 15 15

      這段函數(shù)什么意思呢?  首先,我編寫個(gè)程序,用來求兩個(gè)數(shù)據(jù)的和,x+y。xy是未知參數(shù),s為兩者之。然后我們對(duì)未知參數(shù)x、y賦值,根據(jù)函數(shù)算出和s,最后展示s值,或者數(shù)據(jù)庫增加一列s

      二、自定義函數(shù)的作用

      自定義函數(shù)最大的作用,是幫助我們批量操作!無論是數(shù)據(jù)整理還是計(jì)算分析。如果我們重復(fù)操作某些方法,要么你復(fù)制貼代碼,改各種名稱,要么,采用自編函數(shù)的方法簡化操作。

      三、自定義函數(shù)的格式

      格式:

      myfuntion<-function(arg1,arg2,…){

      statements

      return(object)

      }

      函數(shù)名稱為myfunction;

      arg1,arg2 為參數(shù),是未知的,是后續(xù)需要提供給R語言的。

      statements 為函數(shù)語句,根據(jù)arg1,arg2進(jìn)行的各種計(jì)算

      return(object)返回結(jié)果。 Statements會(huì)產(chǎn)生各種結(jié)果,將想要的結(jié)果object提取出來給我們

      舉例

      # 編寫程序計(jì)算 h(x,n)=1+x+x^2+……+x^n.

      這里面有兩個(gè)參數(shù)是需要我們提供的x,n,因此函數(shù)骨架是functionx,n),

      x.n <- function(x,n){   #自編函數(shù)骨架,x.n為自定義函數(shù)名

       h <- 0    # 標(biāo)紅的statements,采用循環(huán)的方法進(jìn)行運(yùn)算

       for(i in 0:n){

         h <- h+x^i

       }  

       return(h)  #最后返回的最后一次循環(huán)的h值,也就是累和,是函數(shù)最后輸出值。

      }

      x.n(x=5,n=10)  #  如果x=5,n=10,那么根據(jù)我們自定義的函數(shù)x.n()得到什么結(jié)果呢?

      值得提醒的是,自編函數(shù)存在著一對(duì){},循環(huán)語句也存在著一對(duì){},千萬不能少掉一個(gè),如果循環(huán)語句還有if語句,那么有更多的{}了。

      四、練習(xí)題

      11天的練習(xí)題我們?cè)MT位通過循環(huán)和條件語句計(jì)算:

      # 對(duì)于數(shù)據(jù)庫z,以計(jì)算一個(gè)新變量,當(dāng)v1變量<3時(shí)候,這個(gè)新變量是原來變量i次方

      # 當(dāng)v1變量為<4時(shí)候,這個(gè)變量是原變量的i-1次方;

      # 當(dāng)v1<5的時(shí)候,這個(gè)變量是原變量的i-2次方;

      # 當(dāng)v1>=5的時(shí)候,這個(gè)變量是上一個(gè)變量值+10

      現(xiàn)在,我們針對(duì)的不僅是v1,也可能是v2,v3都需要類似的操作,那么我們需要編寫一個(gè)函數(shù)方便批量操作。

      這個(gè)新的自變函數(shù)更為復(fù)雜,它涵蓋了自編、循環(huán)和條件三種語句,層層嵌套。答案如下:

      #編寫程序:

      function2 <- function(x) {

      for(i in 1:length(x)){

       if(x[i]<3){

         y[i]<-x[i]^i

       } else if(x[i]<4){

         y[i]<-x[i]^(i-1)

       } else if(x[i]<5){

         y[i]<-x[i]^(i-2)

       }

       else {

         y[i]<-y[i-1]+10

       }

      }

       return(y)

      }

      #根據(jù)不同的參數(shù)計(jì)算值

      attach(z)

      z$v7<-function2(v1) # 根據(jù)z數(shù)據(jù)框的v1求新的變量v7

      z

      或者z$v7<-function2(z["v1"])

      對(duì)于醫(yī)學(xué)數(shù)據(jù)分析而言,自編函數(shù)并不多見,但它作為一種批量操作,在某些場合具有一定的價(jià)值,幫助我們快速進(jìn)行數(shù)據(jù)整理、轉(zhuǎn)換、和統(tǒng)計(jì)分析。如果你看完之后,也不甚理解,可以放棄這一塊知識(shí)。

      DAY12的內(nèi)容就介紹到這里!

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多