如何根据定义的范围标记我的数据点?

How can I label my data points according to defined ranges?

我有一个数据框 df,我设置了间隔点,这些点保存在向量 pts 中。现在我想将我的数据标记为这些间隔。我尝试使用 cut() 函数,但我总是出错,即 x 不是数字,即使我将它转换为数字。

我的数据框df

        date    amount
1    2012-07-01 2.3498695
2    2012-08-01 0.6984866
3    2012-09-01 0.9079118
4    2012-10-01 2.8858218
5    2012-11-01 1.2406948
6    2012-12-01 2.3140496
7    2013-01-01 1.5904573
8    2013-02-01 3.2531825
9    2013-03-01 4.2962963
10   2013-04-01 3.3287101
11   2013-05-01 3.7698413
12   2013-06-01 1.4376997
13   2013-07-01 5.0687285
14   2013-08-01 4.4520548
15   2013-09-01 5.5063913
16   2013-10-01 5.5676856
17   2013-11-01 6.2686567
18   2013-12-01 11.021069

我的矢量 ptsMin 间隔点

pts$Min
[1]  3  6 11

我的新数据框应该是这样的:

    date     amount      IntervalRange
1    2012-07-01 2.3498695    1
2    2012-08-01 0.6984866    1
3    2012-09-01 0.9079118    1
4    2012-10-01 2.8858218    2
5    2012-11-01 1.2406948    2
6    2012-12-01 2.3140496    2
7    2013-01-01 1.5904573    3
8    2013-02-01 3.2531825    3
9    2013-03-01 4.2962963    3
10   2013-04-01 3.3287101    3
11   2013-05-01 3.7698413    3
12   2013-06-01 1.4376997    4
13   2013-07-01 5.0687285    4
14   2013-08-01 4.4520548    4
15   2013-09-01 5.5063913    4
16   2013-10-01 5.5676856    4
17   2013-11-01 6.2686567    4
18   2013-12-01 11.021069    4

所以,我试过这个:

df_cut <- data.frame(as.numeric(df$date), "IntervalRange" = cut(
                                                df,
                                                breaks=pts$Min))

这会导致此 错误消息

Error in cut.default(df, breaks = pts$Min) : 'x' must be numeric

我现在的问题是:

  1. 为什么我会收到此错误消息?我已经将其更改为数字...
  2. 当使用具有其他间隔的其他数据集时,我能否通过使用 cut()findIntervals() 函数来实现我想要的输出积分?

您缺少剪切函数中的值(或列)。你的命令应该是

data.frame(as.numeric(df$date), "IntervalRange" = cut(df$amount,  breaks=pts$Min))

希望对您有所帮助!