91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言中apply和tapply怎么用

發布時間:2022-01-05 20:40:19 來源:億速云 閱讀:209 作者:iii 欄目:大數據

本篇內容介紹了“R語言中apply和tapply怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、apply()函數

apply函數可將一個任意函數“應用”到矩陣、數組、數據框的任何維度上。使用格式如下:

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

其中x為數據對象,MARGIN是維度的下標,FUN是由你指定的函數,而...則包括了任何想傳遞給FUN的參數。在矩陣或數據框中, MARGIN=1表示行, MARGIN=2表示列。

示例如下:

set.seed(100)mydata <- matrix(rnorm(30), nrow=6) #生成隨機數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函數,這也包括你自行編寫的函數。

二、tapply()函數

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

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

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

示例如下:

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)應用前面的apply求數學和英語的平均分

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

2)當需要分組計算時候,使用tapply函數

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

注:當index不是因子時,可以用as.factor()把參數強制轉換成因子

3)aggregate函數同樣可以得到類似的結果:

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

4)實現類似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怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长兴县| 通城县| 定远县| 法库县| 汨罗市| 凭祥市| 鹤岗市| 乐平市| 和龙市| 晋江市| 离岛区| 自治县| 重庆市| 沁源县| 宁远县| 太仆寺旗| 呼图壁县| 建平县| 开封县| 雅江县| 丰原市| 页游| 定陶县| 福贡县| 临汾市| 铜山县| 岑溪市| 保靖县| 连云港市| 威海市| 牡丹江市| 辰溪县| 鄂伦春自治旗| 万全县| 山阳县| 施秉县| 汝阳县| 陵川县| 禹州市| 高阳县| 石台县|