我尝试使用 lapply 代替与 for 循环一起使用的功能。我对 R 很陌生,对 lapply 不满意。我特别不知道如何制作“如果”条件。
我当前的带有 for 循环的代码看起来像这样(它规范化卷系列):
function(TableVolume,VolumeM,VolumeStD,n){
TableBN = TableVolume[n:nrow(TableVolume),]
for(k in 1:nrow(TableBN)){for (i in 2:ncol(TableBN)){if(!is.na(VolumeM[k,i]) && (VolumeM[k,i]) && (TableVolume[n-1+k,i]>VolumeM[k,i]+1.96/sqrt(n)*VolumeStD[k,i])){TableBN[k,i]=TableVolume[n-1+k,i]/VolumeM[k,i]}else{TableBN[k,i]=0}}}
TableBN=TableBN[n:nrow(TableVolume),]
return(TableBN)
}
我从Apply over two data frames中知道如何执行一个适用于 2 个数据帧的函数,但我仍然看不到如何处理测试。
感谢您的支持,文森特