值小于或等于参考行的行数

时间:2015-07-14 21:01:44

标签: r count row

我有一个表格,其中前10行是引用。对于非引用行中的每一行(即第11行及以上),我想计算引用行(1到10)中的行数,这些行的值小于或等于非行中的行数 - 参考行。

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

结果如下:

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

1 个答案:

答案 0 :(得分:1)

一个选项是使用'NA'创建'Count'列,然后使用sapply循环的输出将元素11替换为最后一个元素。我们循环“值”11:17并检查有多少参考值小于或等于该值。 (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

或者我们也可以使用findInterval

代替循环
df1$Count[11:nrow(df1)] <-  findInterval(df1$Values[11:nrow(df1)], 
                         sort(df1$Values[1:10]))
相关问题