R中利用apply、tapply、lapply、sapply、mapply、table等函數進行分組統計--轉載

來源:互聯網
上載者:User

標籤:beta   輸出   selector   一個   選擇性參數   返回   apply   cti   分組   

apply()

apply(m,dimcode,f,fargs)

  • m 是一個矩陣。
  • dimcode是維度編號,取1則為對行應用函數,取2則為對列運用函數。
  • f是函數
  • fargs是f的選擇性參數集
> z <- matrix(1:6, nrow = 3)> f <- function(x) {+         x/c(2, 8)+ }> apply(z,1,f)  #f函數得到兩個元素,則為幾行,豎著來的      [,1]  [,2] [,3][1,]  0.5 1.000 1.50[2,]  0.5 0.625 0.75
lapply()

lapply()(代表list apply)與矩陣的apply()函數的用法類似, 對列表的每個組件執行給定的函數,並返回另一個列表。

> x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE))> lapply(x, mean)$a[1] 5.5$beta[1] 4.535125$logic[1] 0.5
sapply()

sapply()(代表simplified [l]apply)可以將結果整理以向量,矩陣,列表 的形式輸出。

> sapply(x, mean)       a     beta    logic 5.500000 4.535125 0.500000 > sapply(x, quantile)   #每一個對應組件輸出5個元素,所以為5行,像矩陣一樣,豎著來的。         a        beta logic0%    1.00  0.04978707   0.025%   3.25  0.25160736   0.050%   5.50  1.00000000   0.575%   7.75  5.05366896   1.0100% 10.00 20.08553692   1.0> sapply(2:4, seq)[[1]][1] 1 2[[2]][1] 1 2 3[[3]][1] 1 2 3 4
vapply()

vapply()與sapply()相似,他可以預先指定的傳回值類型。使得得到的結果更加安全。

> vapply(x, quantile, c(1,2,5,6,8))   #它需要一個5個長度的向量來告訴他返回的類型,向量裡面的內容可以變換         a        beta logic0%    1.00  0.04978707   0.025%   3.25  0.25160736   0.050%   5.50  1.00000000   0.575%   7.75  5.05366896   1.0100% 10.00 20.08553692   1.0
tapply( )

tapply(x,f,g)需要向量 x (x不可以是資料框),因子或因子列表 f 以及函數 g 。
tapply()執行的操作是:暫時將x分組,每組對應一個因子水平,得到x的子向量,然後這些子向量應用函數 g

> a <- c(24,25,36,37)> b <- c(‘q‘, ‘w‘, ‘q‘,‘w‘)> tapply(a, b, mean) q  w 30 31 

R中利用apply、tapply、lapply、sapply、mapply、table等函數進行分組統計--轉載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.