




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第R語言apply系列函數實例詳解目錄前言一、apply()函數二、lapply()函數三、sapply()函數四、tapply()函數五、mapply()函數總結
前言
在R語言中,apply系列函數可以對向量、矩陣、數據框一次性對整體數據應用函數運算,非常方便
一、apply()函數
定義:apply()函數按矩陣的行或列方向應用指定函數。
apply(
x#數組或矩陣
MARGIN#應用函數的方向,1行2列
FUN#應用的函數
#返回值根據數據Data的數據類型與Fun的返回值自動判斷返回的數據類型
這里舉個例子:
s-matrix(1:9,ncol=3)
apply(s,1,sum)
apply(s,2,sum)
即可得到下列結果:
apply(s,1,sum)
[1]121518
apply(s,2,sum)
[1]61524
在舉一個R語言自帶的鳶尾花數據集例子:
apply(iris[,1:4],2,sum)
結果如下:
apply(iris[,1:4],2,sum)
Sepal.LengthSepal.WidthPetal.LengthPetal.Width
876.5458.6563.7179.9
如果小伙伴們對鳶尾花數據集不了解可以輸入iris查看。
于此同時R語言中還定義了rowSums(),rowMeans(),colSums(),colMeans()函數對行列進行求和、均值的函數。使用方式也很簡單。
二、lapply()函數
定義:lapply()函數以列表的形式返回函數的結果
lapply(
X#向量、列表、表達式、數據庫
FUN#應用的函數
...#額外參數,會被傳遞給fun函數
)
繼續使用鳶尾花數據集舉例:
lapply(iris[,1:4],mean)
結果如下:
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
可以看到結果以列表的形式返回,可以使用unlist()函數將結果轉換為向量。
unlist(
#將列表轉換為向量
X#R對象
recursive=FALSE#是否對x中的列表進行遞歸轉換
s=TRUE#是否保留列表中的值名稱
unlist(lapply(iris[,1:4],mean))
結果如下所示:
unlist(lapply(iris[,1:4],mean))
Sepal.LengthSepal.WidthPetal.LengthPetal.Width
5.8433333.0573333.7580001.199333
三、sapply()函數
sapply()函數與lapply()函數類似,其結果以矩陣、向量的數據類型返回。
定義:向列表,向量、表達式數據等應用指定函數,然后以向量或矩陣形式返回結果。
sapply(
X#向量、列表、表達式、數據庫
FUN#應用的函數
...#額外參數,會被傳遞給fun函數
)
同樣使用鳶尾花數據集作為例子:
sapply(iris[,1:4],sum)
結果如下:
sapply(iris[,1:4],sum)
Sepal.LengthSepal.WidthPetal.LengthPetal.Width
876.5458.6563.7179.9
當fun函數只有一個返回值,sapply()函數返回的就是包含這些值的向量。如果fun函數的結果時大于1的向量,則sapply()函數會返回矩陣。
如下例:
x-sapply(iris[,1:4],function(x){!--{C}%3C!%2D%2D%20%2D%2D%3E--x3})class(x)
結果如下:
class(x)
[1]matrix
數據如下圖所示:
四、tapply()函數
定義:根據給定的標準,對向量中保存的數據進行分組,然后對各分組應用指定函數,并返回結果。
tapply(
X#向量
INDEX#數據分組索引
FUN#應用的函數
...#額外參數
)
舉個例子:
tapply(1:10,rep(1:2,5),sum)
結果如下圖:
tapply(1:10,rep(1:2,5),sum)
12
2530
例中1:10表示的是數據1到10,rep(1:2,5)表示將1到2重復5次。1,3,5,7,9屬于1分組,2,4,6,8,10屬于2分組。對它們進行求和,得到上訴結果。
以鳶尾花數據集舉例:
tapply(iris$Sepal.Length,iris$Species,sum)
結果如下所示:
tapply(iris$Sepal.Length,iris$Species,sum)
setosaversicolorvirginica
250.3296.8329.4
建立一個銷售數據:
m-matrix(1:8,ncol=2,
dimnames=list(c("春","夏","秋","冬"),
c("female","male")))
對該數據秋上下半年與性別分別秋銷售之和。
代碼如下:
tapply(m,list(c(1,1,2,2,1,1,2,2),
c(1,1,1,1,2,2,2,2)),sum)
結果如下所示:
tapply(m,list(c(1,1,2,2,1,1,2,2),
+c(1,1,1,1,2,2,2,2)),sum)
12
1311
2715
這里是將各個數據的位置建立索引進行分組,而后進行求和。
五、mapply()函數
定義:以列表或向量形式給出的參數傳遞給指定函數,并返回函數執行結果。
mapply(
FUN#應用的函數
...#待傳遞的參數
)
繼續使用鳶尾花數據集舉例(哈哈哈):
mapp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質量異常處理流程培訓
- 《奇趣生物》課件
- 邊境承包魚塘合同協議
- 車位營銷策劃合同協議
- 輕質防爆墻銷售合同協議
- 車位租賃合同安全協議
- 協議書樓盤認籌協議書
- 速貸超期合同解除協議
- 產品研發戰略合作協議說明與說明
- 專業藝術品展覽館銷售合同
- 2025年入團考試一覽無遺試題及答案
- 公司檔案及文件管理制度
- 2025年四川筠連縣國有資本投資運營有限公司招聘筆試參考題庫含答案解析
- 2024年貴州遵義公開招聘社區工作者考試試題答案解析
- 2025年全國低壓電工證(復審)考試筆試試題(300題)含答案
- 文言常識測試題及答案
- 入團考試測試題及答案
- 中班早期閱讀《跑跑鎮》課件
- 【語文試卷+答案 】上海市崇明區2025屆高三第二學期第二次模擬考試(崇明二模)
- Unit 4 第5課時 B learn學習任務單
- 《中國古典文學中的詠花詩與審美文化》論文
評論
0/150
提交評論