我有一个在 R 中运行的操作,并且想知道是否有任何规则集可以帮助我确定是否要对行或列执行操作,因为转置矩阵是编程偏好的问题否则。
到目前为止,我唯一的常规建议是:每次都在子样本上进行测试。我们能否以任何方式做得更好,比如:除法最好长于宽?如果我们不能做得更好,为什么不呢?
我已将我感兴趣的具体操作编程如下,但请记住,我对此一般比具体更感兴趣:
support_n:我正在调查的一些矩阵。即,(N) x (K 选择 N)。K>50,N>4
fz():多个变量、多项式、最大值和最小值的平淡函数。
fz<-function(z,vec_l){
if(z%in%vec_l){ #find if z is eqivilant to any number, return 0
out<-0
} else if(z>max(vec_l)){
out<-z^2*max(vec_l)^2
} else {
out<-z^2+min(vec_l)^2
}
out
}
registerDoParallel(cl)
system.time(
payoff<-foreach(y=1:n, .combine='cbind') %:%
foreach(x=1:ncol(support_n), .combine='c') %dopar% {
fz(support_n[y,x],support_n[-y,x])
}
)
那么我应该首先在 y 或 x 上运行它吗?为什么?