r - Count of rows with values less than or equal to reference rows -


i have table in first 10 rows references. each row in non-reference rows (i.e. row 11 , beyond), want count number of rows in reference row (1 10) have value less or equal 1 in non-reference row.

row values 1   1.35 2   0.71 3   1.00 4   0.07 5   0.53 6   0.12 7   0.36 8   2.03 9   3.83 10  1.30 11  2.17 12  1.71 13  1.52 14  1.27 15  0.29 16  0.05 17  0.14 

the result like:

row values  count 1   1.35     2   0.71     3   1.00     4   0.07     5   0.53     6   0.12     7   0.36     8   2.03     9   3.83     10  1.30     11  2.17    9 12  1.71    8 13  1.52    8 14  1.27    6 15  0.29    2 16  0.05    0 17  0.14    2 

one option create 'count' column 'na' , replace elements 11 last elements output sapply loop. loop 'values' 11:17 , check how many reference values less or equal value. (sum(df1$values[1:10] <= x))

df1$count <- na df1$count[11:nrow(df1)] <- sapply(df1$values[11:nrow(df1)],           function(x) sum(df1$values[1:10] <= x)) df1$count #[1] na na na na na na na na na na  9  8  8  6  2  0  2 

or instead of loop, can use findinterval

df1$count[11:nrow(df1)] <-  findinterval(df1$values[11:nrow(df1)],                           sort(df1$values[1:10])) 

Comments