亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

昌图县| 都兰县| 曲周县| 湘乡市| 会东县| 历史| 伊宁县| 盐山县| 乳山市| 繁昌县| 望都县| 永登县| 东至县| 汉寿县| 呼伦贝尔市| 宁津县| 深州市| 九江市| 华宁县| 尚义县| 文成县| 肇庆市| 安岳县| 扎囊县| 乳源| 新巴尔虎右旗| 绥德县| 桃园县| 泾源县| 萨迦县| 枣阳市| 项城市| 双牌县| 政和县| 浮山县| 双峰县| 定南县| 淳化县| 沂水县| 泾阳县| 凤阳县|