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

R 如何根据定义的范围标记数据点?,r,intervals,cut,R,Intervals,Cut,我有一个数据帧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

我有一个数据帧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
我的向量pts与列Min与区间点

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))
df_cut您缺少cut函数中的值(或列)。你的命令应该是

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

希望这有帮助

as.numeric(cut(df$amount,breaks=c(0,3,6,11))
@RonakShah Nevermind,我误解了这个问题。@RonakShah不工作
x
在这个错误消息中应该是一个数字向量。相反,您为该参数提供了
df
,该参数是一个数据帧