使用R中的数字序列从数字列的子集中缺少值

时间:2016-03-17 05:01:06

标签: r dataframe subset seq

我正在尝试使用表示感兴趣区间的序列对具有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位小数的精度,我试图提取落在平均值周围的值。谢谢!

0 个答案:

没有答案