-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCV_RIDIT.R
36 lines (34 loc) · 973 Bytes
/
CV_RIDIT.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# function to transform into ridit score
#####################################################################
CV_RIDIT<-function(x,K,nb_cores) {
library(foreach)
library(doMC)
registerDoMC(nb_cores)
out<-list()
out$ECDF<-foreach (i = 1:length(K)) %dopar% {
out<-list()
for (j in 1:ncol(x)) out[[j]]<-ecdf(x[-K[[i]],j])
out
}
apply_ridit_one<-function(x,Fn) ((Fn(x-1e-15)+(Fn(x)-Fn(x-1e-15))/2)-0.5)*2
out$x<-foreach (i = 1:length(K)) %dopar% {
out_x<-x
for (j in 1:ncol(x)) out_x[,j]<-apply_ridit_one(x[,j],out$ECDF[[i]][[j]])
out_x
}
out
}
APPLY_RIDIT<-function(ECDF,x,K,nb_cores) {
library(foreach)
library(doMC)
registerDoMC(nb_cores)
out<-list()
out$ECDF<-ECDF
apply_ridit_one<-function(x,Fn) ((Fn(x-1e-15)+(Fn(x)-Fn(x-1e-15))/2)-0.5)*2
out$x<-foreach (i = 1:length(ECDF)) %dopar% {
out_x<-x
for (j in 1:ncol(x)) out_x[,j]<-apply_ridit_one(x[,j],out$ECDF[[i]][[j]])
out_x
}
out
}