欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言apply系列函數(shù)實(shí)例詳解

 更新時(shí)間:2022年12月02日 09:10:01   作者:Bio大恐龍  
apply()函數(shù)是一種很強(qiáng)大的機(jī)制,下面這篇文章主要給大家介紹了關(guān)于R語言apply系列函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在R語言中,apply系列函數(shù)可以對(duì)向量、矩陣、數(shù)據(jù)框一次性對(duì)整體數(shù)據(jù)應(yīng)用函數(shù)運(yùn)算,非常方便

一、apply()函數(shù)

定義:apply()函數(shù)按矩陣的行或列方向應(yīng)用指定函數(shù)。

apply(
  x # 數(shù)組或矩陣
  MARGIN #應(yīng)用函數(shù)的方向,1行2列 
  FUN # 應(yīng)用的函數(shù)
)
# 返回值根據(jù)數(shù)據(jù)Data的數(shù)據(jù)類型與Fun的返回值自動(dòng)判斷返回的數(shù)據(jù)類型

這里舉個(gè)例子:

s <- matrix(1:9,ncol = 3)
apply(s,1,sum)
apply(s,2,sum)

即可得到下列結(jié)果:

apply(s,1,sum)
[1] 12 15 18
apply(s,2,sum)
[1]  6 15 24

在舉一個(gè)R語言自帶的鳶尾花數(shù)據(jù)集例子:

apply(iris[,1:4],2,sum)

結(jié)果如下:

apply(iris[,1:4],2,sum)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
       876.5        458.6        563.7        179.9 

如果小伙伴們對(duì)鳶尾花數(shù)據(jù)集不了解可以輸入iris查看。

于此同時(shí)R語言中還定義了rowSums(),rowMeans(),colSums(),colMeans()函數(shù)對(duì)行列進(jìn)行求和、均值的函數(shù)。使用方式也很簡(jiǎn)單。

二、lapply()函數(shù)

定義:lapply()函數(shù)以列表的形式返回函數(shù)的結(jié)果

lapply(
  X #向量、列表、表達(dá)式、數(shù)據(jù)庫
  FUN #應(yīng)用的函數(shù)
  ... #額外參數(shù),會(huì)被傳遞給fun函數(shù)
)

繼續(xù)使用鳶尾花數(shù)據(jù)集舉例:

lapply(iris[,1:4],mean)

結(jié)果如下:

lapply(iris[,1:4],mean)
$Sepal.Length
[1] 5.843333

$Sepal.Width
[1] 3.057333

$Petal.Length
[1] 3.758

$Petal.Width
[1] 1.199333

可以看到結(jié)果以列表的形式返回,可以使用unlist()函數(shù)將結(jié)果轉(zhuǎn)換為向量。

unlist(
  #將列表轉(zhuǎn)換為向量
  X #R對(duì)象
  recursive = FALSE #是否對(duì)x中的列表進(jìn)行遞歸轉(zhuǎn)換
  use.names = TRUE #是否保留列表中的值名稱
)
unlist(lapply(iris[,1:4],mean))

結(jié)果如下所示:

unlist(lapply(iris[,1:4],mean))
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
    5.843333     3.057333     3.758000     1.199333

三、sapply()函數(shù)

sapply()函數(shù)與lapply()函數(shù)類似,其結(jié)果以矩陣、向量的數(shù)據(jù)類型返回。

定義:向列表,向量、表達(dá)式數(shù)據(jù)等應(yīng)用指定函數(shù),然后以向量或矩陣形式返回結(jié)果。

sapply(
  X #向量、列表、表達(dá)式、數(shù)據(jù)庫
  FUN #應(yīng)用的函數(shù)
  ... #額外參數(shù),會(huì)被傳遞給fun函數(shù)
)

同樣使用鳶尾花數(shù)據(jù)集作為例子:

sapply(iris[,1:4], sum)

結(jié)果如下:

sapply(iris[,1:4], sum)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
       876.5        458.6        563.7        179.9 

當(dāng)fun函數(shù)只有一個(gè)返回值,sapply()函數(shù)返回的就是包含這些值的向量。如果fun函數(shù)的結(jié)果時(shí)大于1的向量,則sapply()函數(shù)會(huì)返回矩陣。

如下例:

x <- sapply(iris[,1:4], function(x) {<!--{C}%3C!%2D%2D%20%2D%2D%3E-->x >3})class(x)

結(jié)果如下:

class(x)
[1] "matrix"

數(shù)據(jù)如下圖所示:

四、tapply()函數(shù)

定義:根據(jù)給定的標(biāo)準(zhǔn),對(duì)向量中保存的數(shù)據(jù)進(jìn)行分組,然后對(duì)各分組應(yīng)用指定函數(shù),并返回結(jié)果。

tapply(
  X #向量
  INDEX #數(shù)據(jù)分組索引
  FUN #應(yīng)用的函數(shù)
  ... #額外參數(shù)
)

舉個(gè)例子:

tapply(1:10,rep(1:2,5),sum)

結(jié)果如下圖:

tapply(1:10,rep(1:2,5),sum)
 1  2 
25 30 

例中1:10表示的是數(shù)據(jù)1到10,rep(1:2,5)表示將1到2重復(fù)5次。1,3,5,7,9屬于1分組,2,4,6,8,10屬于2分組。對(duì)它們進(jìn)行求和,得到上訴結(jié)果。

以鳶尾花數(shù)據(jù)集舉例:

tapply(iris$Sepal.Length,iris$Species,sum)

結(jié)果如下所示:

tapply(iris$Sepal.Length,iris$Species,sum)
    setosa versicolor  virginica 
     250.3      296.8      329.4 

建立一個(gè)銷售數(shù)據(jù):

m <- matrix(1:8,ncol = 2,
            dimnames = list(c("春","夏","秋","冬"),
                            c("female","male")))

對(duì)該數(shù)據(jù)秋上下半年與性別分別秋銷售之和。

代碼如下:

tapply(m, list(c(1,1,2,2,1,1,2,2),
               c(1,1,1,1,2,2,2,2)), sum)

結(jié)果如下所示:

tapply(m, list(c(1,1,2,2,1,1,2,2),
+                c(1,1,1,1,2,2,2,2)), sum)
  1  2
1 3 11
2 7 15

這里是將各個(gè)數(shù)據(jù)的位置建立索引進(jìn)行分組,而后進(jìn)行求和。

五、mapply()函數(shù)

定義:以列表或向量形式給出的參數(shù)傳遞給指定函數(shù),并返回函數(shù)執(zhí)行結(jié)果。

mapply(
  FUN #應(yīng)用的函數(shù)
  ... #待傳遞的參數(shù)
)

繼續(xù)使用鳶尾花數(shù)據(jù)集舉例(哈哈哈):

mapply(sum,iris[,1:4])

結(jié)果如下:

mapply(sum,iris[,1:4])
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
       876.5        458.6        563.7        179.9 

總結(jié)

到此這篇關(guān)于R語言apply系列函數(shù)的文章就介紹到這了,更多相關(guān)R語言apply函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • 聊聊R語言中Legend 函數(shù)的參數(shù)用法

    聊聊R語言中Legend 函數(shù)的參數(shù)用法

    這篇文章主要介紹了聊聊R語言中Legend 函數(shù)的參數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言 實(shí)現(xiàn)list類型數(shù)據(jù)轉(zhuǎn)換

    R語言 實(shí)現(xiàn)list類型數(shù)據(jù)轉(zhuǎn)換

    這篇文章主要介紹了R語言 實(shí)現(xiàn)list類型數(shù)據(jù)轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 教你利用R語言測(cè)試電腦的性能

    教你利用R語言測(cè)試電腦的性能

    這篇文章主要介紹了利用R語言測(cè)試電腦的性能如何,通過矩陣的運(yùn)算來計(jì)算,本文通過代碼講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • R語言多線程運(yùn)算操作(解決R循環(huán)慢的問題)

    R語言多線程運(yùn)算操作(解決R循環(huán)慢的問題)

    這篇文章主要介紹了R語言多線程運(yùn)算操作(解決R循環(huán)慢的問題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 詳解R語言apply系列函數(shù)的使用

    詳解R語言apply系列函數(shù)的使用

    R語言的循環(huán)效率并不高,所以并不推薦循環(huán)以及循環(huán)嵌套。為了實(shí)現(xiàn)循環(huán)功能的情況下,兼顧效率,R語言提供了apply系列函數(shù),用于對(duì)規(guī)則的數(shù)據(jù)進(jìn)行函數(shù)式的迭代處理,下面就來和大家聊聊它們的使用吧
    2023-03-03
  • R語言:排序的應(yīng)用操作

    R語言:排序的應(yīng)用操作

    這篇文章主要介紹了R語言:排序的應(yīng)用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言可視化ggplot2繪制24小時(shí)動(dòng)態(tài)血糖圖

    R語言可視化ggplot2繪制24小時(shí)動(dòng)態(tài)血糖圖

    這篇文章主要為大家介紹了R語言可視化使用ggplot2繪制24小時(shí)動(dòng)態(tài)血糖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • R語言可視化開發(fā)forestplot根據(jù)分組設(shè)置不同顏色

    R語言可視化開發(fā)forestplot根據(jù)分組設(shè)置不同顏色

    這篇文章主要為大家介紹了R語言可視化開發(fā)使用forestplot根據(jù)分組設(shè)置不同顏色的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • R的ggplot2畫圖,去除灰色陰影和網(wǎng)格的方式

    R的ggplot2畫圖,去除灰色陰影和網(wǎng)格的方式

    這篇文章主要介紹了R的ggplot2畫圖,去除灰色陰影和網(wǎng)格的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言中set.seed()函數(shù)的作用詳解

    R語言中set.seed()函數(shù)的作用詳解

    set.seed()括號(hào)里面的參數(shù)可以是任意數(shù)字,是代表你設(shè)置的第幾號(hào)種子而已,不會(huì)參與運(yùn)算,是個(gè)標(biāo)記而已。,這篇文章主要介紹了R語言中set.seed()函數(shù)的作用,需要的朋友可以參考下
    2022-09-09

最新評(píng)論