Skip to content
Prev 367511 / 398500 Next

R code helps needed!

Hi Jim,

I added more codes besides your original ones.  I bet there should be
simpler way(s) to do this but this is the best I can think of.  Any
feedback from you and others will be highly appreciated.

Thanks a lot!

Steve

result<-read.table(text=
     "intercept decision expected.decision
 1 reject reject
 2 reject reject
 3 reject reject
 0 pass pass
 3 reject skip
 0 pass skip
 3 reject skip
 5 reject skip
 0 pass skip
 0 pass pass
 3 reject skip
 1 reject skip
 0 pass skip
 0 pass skip
 2 reject skip
 1 reject reject
 0 pass pass
 3 reject skip
 0 pass skip
 2 reject skip
 0 pass skip
 1 reject skip
 2 reject reject
 2 reject reject
",
 header=TRUE,stringsAsFactors=FALSE)
int <- result$intercept
int
# [1] 1 2 3 0 3 0 3 5 0 0 3 1 0 0 2 1 0 3 0 2 0 1 2 2
pass.theo <- which(int==0)
pass.theo
#[1]  4  6  9 10 13 14 17 19 21
lv1 <- int==0
lv1
# [1] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE
FALSE
#[13]  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE
FALSE
pass.1st <- min(which(lv1==TRUE))
pass.1st
#[1] 4

m <- c(0:100)
 interval <- 6*m + pass.1st
 interval
# [1]   4  10  16  22  28  34  40  46  52  58  64  70  76  82  88  94 100
106
 #[19] 112 118 124 130 136 142 148 154 160 166 172 178 184 190 196 202 208
214
 #[37] 220 226 232 238 244 250 256 262 268 274 280 286 292 298 304 310 316
322
 #[55] 328 334 340 346 352 358 364 370 376 382 388 394 400 406 412 418 424
430
 #[73] 436 442 448 454 460 466 472 478 484 490 496 502 508 514 520 526 532
538
 #[91] 544 550 556 562 568 574 580 586 592 598 604
interval2 <- c(interval[interval<=length(int)], length(int))
interval2
#[1]  4 10 16 22 24
 pass.theo
#[1]  4  6  9 10 13 14 17 19 21

res <- as.list(NULL)
res[[i]] <- min(pass.theo[pass.theo >= interval2[i] & pass.theo <
interval2[i+1]])
 res
 }
#Warning message:
#In min(pass.theo[pass.theo >= interval2[i] & pass.theo < interval2[i +  :
 # no non-missing arguments to min; returning Inf
res
#[[1]]
#[1] 4
#[[2]]
#[1] 10
#[[3]]
#[1] 17
#[[4]]
#[1] Inf

res <- unlist(res)
passes <- res[is.finite(res)]
passes
#[1]  4 10 17

skips<-as.vector(sapply(passes,function(x) return(x+1:5)))
skips2 <- skips[skips<=length(int)]
new.decision <- result$decision
new.decision[skips2] <- 'skip'
new.decision
# [1] "reject" "reject" "reject" "pass"   "skip"   "skip"   "skip"
"skip"
 #[9] "skip"   "pass"   "skip"   "skip"   "skip"   "skip"   "skip"
"reject"
#[17] "pass"   "skip"   "skip"   "skip"   "skip"   "skip"   "reject"
"reject"
cbind(result, new.decision)
#   intercept decision expected.decision      new.decision
#1          1   reject            reject reject
#2          2   reject            reject reject
#3          3   reject            reject reject
#4          0     pass              pass   pass
#5          3   reject              skip   skip
#6          0     pass              skip   skip
#7          3   reject              skip   skip
#8          5   reject              skip   skip
#9          0     pass              skip   skip
#10         0     pass              pass   pass
#11         3   reject              skip   skip
#12         1   reject              skip   skip
#13         0     pass              skip   skip
#14         0     pass              skip   skip
#15         2   reject              skip   skip
#16         1   reject            reject reject
#17         0     pass              pass   pass
#18         3   reject              skip   skip
#19         0     pass              skip   skip
#20         2   reject              skip   skip
#21         0     pass              skip   skip
#22         1   reject              skip   skip
#23         2   reject            reject reject
#24         2   reject            reject reject
On Fri, Mar 3, 2017 at 8:00 AM, SH <emptican at gmail.com> wrote: