我不确定如何在R中有效地做到这一点:
B <- matrix(0,p,L+1)
for(jj in 1:L){
B[,jj+1] <- enet(y, X, B[,jj], lamgrid[jj+1], alpha, printitn) # enet returns a p-dim vector
}
我尝试使用mapply,但是我不知道如何将最近计算出的B [,jj]作为参数传递。
B[,2:] <- mapply(function(b,l)<- enet(y, X, b, l, alpha, printitn), ???, lamgrid[2:])
答案 0 :(得分:2)
$sql = "SELECT even.sid, even.datetime, count(*) as num_rows,
count(distinct even.sid) as sessions,
sum( even.targetbuttonname = 'konto' ) as num_konto,
sum(devicetype ='Computer') as num_computer,
sum(devicetype = 'Mobile') as num_mobile from events even
INNER JOIN sessions ON even.sid = sessions.sid group by even.sid,
even.datetime";
不会这样做,它是广义的mapply
。您需要的算法称为 scan 或prefix (or cumulative) sum。不幸的是,它没有内置在R中(the specific case of an actual sum and product中除外),我也不知道实现该操作的主流软件包。
无论哪种方式,您编写的循环可能都不是很完美,但是它的效率并不是问题,使用扫描算法并不会使其效率更高。