[R]高級結構指令(lapply, sapply和apply)的用法

基本的程序語言都具備基本的控制結構指令,如if...else和for...loop,一般可做為操作向量數據的輔助工具。然而,當用於大數據的平行處理作業,切換為矩陣操作就顯得相當重要,R語言中的高級數據結構指令即具備平行處理大數據的功能。

lapply: 輸入資料結構為一個列表(list)和一個自訂函數(fun),即可對列表中的數據進行平行計算和求值,輸出資料結構為一個列表(list)。以一個列表(data1)和平均值函數(mean)作為範例,如下。

#data
data1<-list(num=c(1:5), name=c(10,20,30),mat=matrix(1:15,nrow = 3,ncol = 5))
#result
cal1<-lapply(data1, mean)

#輸出結果
> cal1
$num
[1] 3
$name
[1] 20
$mat
[1] 8

也可以進一步用自訂函數(fun)來計算,範例如下。

#function
f<-function(x){x/5}
#data
data1<-list(num=c(1:5), name=c(10,20,30),mat=matrix(1:15,nrow = 3,ncol = 5))
#result
cal2<-lapply(data1, f)

#輸出結果
> cal2
$num
[1] 0.2 0.4 0.6 0.8 1.0
$name
[1] 2 4 6
$mat
     [,1] [,2] [,3] [,4] [,5]
[1,]  0.2  0.8  1.4  2.0  2.6
[2,]  0.4  1.0  1.6  2.2  2.8
[3,]  0.6  1.2  1.8  2.4  3.0

sap

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值