我正在尝试使用表示感兴趣区间的序列对具有3个小数位的数字列进行子集化。这是一个例子:
# Dummy data frame
> df <- data.frame(a = seq(10), b = sample(seq(1,10,0.001), 10))
> df
a b
1 1 5.263
2 2 4.970
3 3 5.238
4 4 4.792
5 5 8.875
6 6 7.425
7 7 4.480
8 8 8.045
9 9 4.956
10 10 4.318
# Bin containing interval of interest
> bin <- seq(4,6,0.001)
# Subset of df%b using bin
> df$b[df$b %in% bin]
[1] 5.263 4.792 4.480 4.318
我也希望在结果中看到4.970,5.238,4.956 ......但是它们不见了。
我遇到的另一个数据子集函数如下:
> bin[findInterval(df$b, bin)]
[1] 5.263 4.970 5.238 4.792 6.000 6.000 4.480 6.000 4.955 4.318
此方法获取我期望的所有数据点,但是4.956显示为已经在bin中匹配4.955,这让我想知道由于舍入错误是否未发生匹配。我还假设“findInterval”方法显示上面显示的三个6,因为它试图匹配的值超出了bin的上限,在这种情况下为6。
我的数据需要3位小数的精度,我试图提取落在平均值周围的值。谢谢!