[R] Return rows with largest, cumulative, between column differences

arun smartpink111 at yahoo.com
Mon Feb 17 18:17:11 CET 2014


Hi,
Try:
indx <-  which(round(rowSums(abs(sweep(edm[,grep("perturb",colnames(edm))],1,edm[,"base"],`-`))),4) >=0.0025) ##if there is threshold value
 indx
#[1] 22 23 24 25 28 31 33
edm[indx,]

A.K.




On Monday, February 17, 2014 11:49 AM, "Morway, Eric" <emorway at usgs.gov> wrote:
Using the small data set below (which  is a small snippet of a much larger
dataset), I'd like to get the row(s) that corresponds to the largest,
cumulative, absolute difference between the value in "base" and each of the
remaining columns. For example, in row 2, the three absolute differences of
abs(12.9664-12.9663), abs(12.9664-12.9666), abs(12.9664-12.9665), sum to
0.0004 (0.0001+0.0002+ 0.0001). Row 3 would be
abs(12.9853-12.9847)+abs(12.9853-12.9856)+abs(12.9853-12.9852)=0.001. For
the example data set provided, a check in excel revealed that rows 22-25,
28, 31, and 33 all had values of 0.0025, the largest cumulative residual
among the three columns subtracted from the "base" column. Because the
larger dataset will have more "perturb" columns to be included in the
analysis, I'm hoping any offered solution will take that into account.
Thanks, Eric

edm <- read.table(textConnection(" t_ib3__0001             12.94150
12.94150       12.94180       12.94160
t_ib3__0002             12.96640       12.96630       12.96660
12.96650
t_ib3__0003             12.98530       12.98470       12.98560
12.98520
t_ib3__0004             13.00940       13.00890       13.00970
13.00930
t_ib3__0005             13.02840       13.02880       13.02930
13.02930
t_ib3__0006             13.05390       13.05430       13.05480
13.05470
t_ib3__0007             13.07650       13.07690       13.07740
13.07730
t_ib3__0008             13.10210       13.10240       13.10290
13.10280
t_ib3__0009             13.12530       13.12560       13.12610
13.12610
t_ib3__0010             13.15260       13.15290       13.15340
13.15340
t_ib3__0011             13.17750       13.17780       13.17830
13.17830
t_ib3__0012             13.20850       13.20870       13.20930
13.20930
t_ib3__0013             13.23710       13.23740       13.23800
13.23800
t_ib3__0014             13.27270       13.27290       13.27350
13.27360
t_ib3__0015             13.30560       13.30580       13.30650
13.30660
t_ib3__0016             13.34390       13.34400       13.34480
13.34490
t_ib3__0017             13.37220       13.37230       13.37310
13.37330
t_ib3__0018             13.41300       13.41310       13.41400
13.41410
t_ib3__0019             13.44310       13.44310       13.44400
13.44420
t_ib3__0020             13.48640       13.48640       13.48730
13.48760
t_ib3__0021             13.52740       13.52690       13.52820
13.52850
t_ib3__0022             13.57090       13.57030       13.57170
13.57200
t_ib3__0023             13.61340       13.61290       13.61430
13.61450
t_ib3__0024             13.65490       13.65430       13.65570
13.65600
t_ib3__0025             13.69530       13.69470       13.69610
13.69640
t_ib3__0026             13.73420       13.73350       13.73490
13.73520
t_ib3__0027             13.77090       13.77020       13.77160
13.77190
t_ib3__0028             13.80700       13.80630       13.80780
13.80800
t_ib3__0029             13.83910       13.83840       13.83980
13.84000
t_ib3__0030             13.87330       13.87260       13.87400
13.87430
t_ib3__0031             13.90590       13.90490       13.90650
13.90680
t_ib3__0032             13.93780       13.93690       13.93840
13.93870
t_ib3__0033             13.96830       13.96730       13.96890
13.96920
t_ib3__0034             13.99800       13.99710       13.99860
13.99890
t_ib3__0035             14.02680       14.02590       14.02740
14.02760
t_ib3__0036             14.05460       14.05360       14.05510
14.05540
t_ib3__0037             14.08110       14.08010       14.08160
14.08180
t_ib3__0038             14.10740       14.10640       14.10790
14.10810
t_ib3__0039             14.13180       14.13080       14.13230
14.13250
t_ib3__0040             14.15660       14.15560       14.15700
14.15720
t_ib3__0041             14.18040       14.17940       14.18080
14.18100
t_ib3__0042             14.20320       14.20210       14.20350
14.20380
t_ib3__0043             14.22450       14.22350       14.22490
14.22510
t_ib3__0044             14.24700       14.24600       14.24730
14.24760
t_ib3__0045             14.26880       14.26780       14.26920
14.26940
t_ib3__0046             14.29040       14.28930       14.29070
14.29090
t_ib3__0047             14.31150       14.31040       14.31170
14.31190
t_ib3__0048             14.33210       14.33100       14.33230
14.33250
t_ib3__0049             14.35200       14.35100       14.35230
14.35250
t_ib3__0050             14.37130       14.37030       14.37160
14.37170
"),header=FALSE,col.names=c("name","base","perturb1","perturb2","perturb3"))

    [[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.





More information about the R-help mailing list