真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

R語言中apply和tapply怎么用

本篇內(nèi)容介紹了“R語言中apply和tapply怎么用”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),品牌網(wǎng)站制作,公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。

一、apply()函數(shù)

apply函數(shù)可將一個(gè)任意函數(shù)“應(yīng)用”到矩陣、數(shù)組、數(shù)據(jù)框的任何維度上。使用格式如下:

apply(x, MARGIN, FUN, ...)

其中x為數(shù)據(jù)對(duì)象,MARGIN是維度的下標(biāo),F(xiàn)UN是由你指定的函數(shù),而...則包括了任何想傳遞給FUN的參數(shù)。在矩陣或數(shù)據(jù)框中, MARGIN=1表示行, MARGIN=2表示列。

示例如下:

set.seed(100)mydata <- matrix(rnorm(30), nrow=6) #生成隨機(jī)數(shù)mydata            [,1]        [,2]        [,3]       [,4]       [,5]
[1,] -0.50219235 -0.58179068 -0.20163395 -0.9138142 -0.8143791
[2,]  0.13153117  0.71453271  0.73984050  2.3102968 -0.4384506
[3,] -0.07891709 -0.82525943  0.12337950 -0.4380900 -0.7202216
[4,]  0.88678481 -0.35986213 -0.02931671  0.7640606  0.2309445
[5,]  0.11697127  0.08988614 -0.38885425  0.2619613 -1.1577295
[6,]  0.31863009  0.09627446  0.51085626  0.7734046  0.2470760

利用apply求均值

apply(mydata, 2, mean)[1]  0.1454680 -0.1443698  0.1257119  0.4596365 -0.4421267apply(mydata, 2, mean, trim=0.2) #去掉端值[1]  0.1220539 -0.1888731  0.1008213  0.3403341 -0.4355267

注:FUN可為任意R函數(shù),這也包括你自行編寫的函數(shù)。

二、tapply()函數(shù)

tapply()函數(shù)可根據(jù)因子、向量和要計(jì)算的函數(shù)計(jì)算,使用格式如下:

tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)

其中X通常是一向量;INDEX是一個(gè)list對(duì)象,且該list中的每一個(gè)元素都是與X有同樣長度的因子;FUN是需要計(jì)算的函數(shù);simplify是邏輯變量,若取值為TRUE(默認(rèn)值),且函數(shù)FUN的計(jì)算結(jié)果總是為一個(gè)標(biāo)量值,那么函數(shù)tapply返回一個(gè)數(shù)組;若取值為FALSE,則函數(shù)tapply的返回值為一個(gè)list對(duì)象。

示例如下:

Student <- c("John Davis", "Angela Williams", "Bullwinkle Moose",
"David Jones", "Janice Markhammer", "Cheryl Cushing",
"Reuven Ytzrhak", "Greg Knox", "Joel England",
"Mary Rayburn")
Math <- c(502, 600, 412, 358, 495, 512, 410, 625, 573, 522)
English <- c(25, 22, 18, 15, 20, 28, 15, 30, 27, 18)
roster <- data.frame(Student, Math, English,stringsAsFactors=FALSE)


roster$grade[roster$Math <= 500] <- "A"
roster$grade[roster$Math > 500] <- "B"


roster
             Student Math English grade
         John Davis  502      25     B
    Angela Williams  600      22     B
   Bullwinkle Moose  412      18     A
        David Jones  358      15     A
  Janice Markhammer  495      20     A
     Cheryl Cushing  512      28     B
     Reuven Ytzrhak  410      15     A
          Greg Knox  625      30     B
       Joel England  573      27     B
       Mary Rayburn  522      18     B

1)應(yīng)用前面的apply求數(shù)學(xué)和英語的平均分

apply(roster[,c(2,3)],2,mean)Math English   500.9    21.8

2)當(dāng)需要分組計(jì)算時(shí)候,使用tapply函數(shù)

tapply(roster[,"English"], roster[,"grade"], mean) A  B 17 25

注:當(dāng)index不是因子時(shí),可以用as.factor()把參數(shù)強(qiáng)制轉(zhuǎn)換成因子

3)aggregate函數(shù)同樣可以得到類似的結(jié)果:

aggregate(x=roster[c('English')], by = list(roster$grade), FUN=mean)

4)實(shí)現(xiàn)類似excel的透視表功能

attach(roster)tapply(English,list(Student,grade),mean)                    A  BAngela Williams   NA 22Bullwinkle Moose  18 NACheryl Cushing    NA 28David Jones       15 NAGreg Knox         NA 30Janice Markhammer 20 NAJoel England      NA 27John Davis        NA 25Mary Rayburn      NA 18Reuven Ytzrhak    15 NA

“R語言中apply和tapply怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


分享文章:R語言中apply和tapply怎么用
文章鏈接:http://weahome.cn/article/iedehc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部