我有一个表格,其中前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
答案 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]))