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
Post a Comment