[R] how to do this trimming/selecting in canonical R?
gildororonar at mail-on.us
gildororonar at mail-on.us
Sat Sep 14 18:35:43 CEST 2013
This is better explained by example:
> A <- data.frame(force = sort(runif(10, 0, 1)), condition =
> sort(sample(0:100, 10)))
> B <- data.frame(counterforce = sort(runif(15, 0, 1), decreasing=T),
> condition = sort(sample(0:100, 15)))
So we have:
> A
force condition
1 0.03515542 1
2 0.13267882 13
3 0.26155689 24
4 0.37453142 38
5 0.39360520 45 <--- trim everything after this
6 0.43924737 48
7 0.47669800 50
8 0.57044795 51
9 0.81177499 61
10 0.98860450 94
> B
counterforce condition
1 0.965769548 2
2 0.965266255 5
3 0.846941244 7
4 0.818013029 11
5 0.813139978 22
6 0.730599939 34
7 0.715985436 39
8 0.658073895 40
9 0.421264948 42 <--- trim everything after this
10 0.373774505 52
11 0.242191461 62
12 0.090584590 63
13 0.070020635 68
14 0.067366062 83
15 0.001585313 84
I need to trim away rows after No. 5, from A, trim away rows after No.
9, from B.
Because
A[5, condition] > max(B[1:9, condition] && A[5, force] > B[9+1, counterforce]
In a general way, I am looking for x and y, where:
A[x, condition] > max(B[1:y, condition] && A[x, force] > B[y+1, counterforce]
and I will select A[1:x,] and B[1:y,], or trim away the rest, because
they are irrelevent for the calculation onwards.
This is easy to do it in C, and I actually have done it in C-like R
script, by looping through all rows of A, and breaking from the loop
when finding the matching trim-point in B. But I am learning R, so
what is the native way to do it in R?
-------------------------------------------------
VFEmail.net - http://www.vfemail.net
$14.95 ONETIME Lifetime accounts with Privacy Features!
15GB disk! No bandwidth quotas!
Commercial and Bulk Mail Options!
More information about the R-help
mailing list