R Cut函数为间隔返回NA

R Cut函数为间隔返回NA,r,cut,R,Cut,我正在尝试使用cut函数来创建年龄间隔。不幸的是,我收到的NAs值与第一次中断的下限相匹配 例如: AGE <- sample(18:50, 100, replace = TRUE) AGE_GROUPS <- cut(AGE, breaks = c(18, 27, 36, 45)) DF <- data.frame(AGE, AGE_GROUPS) AGE休息不仅仅是中间休息,也是终点休息。你可以确保你得到了一切 breaks = c(-Inf, 18, 27, 36, 4

我正在尝试使用cut函数来创建年龄间隔。不幸的是,我收到的NAs值与第一次中断的下限相匹配

例如:

AGE <- sample(18:50, 100, replace = TRUE)
AGE_GROUPS <- cut(AGE, breaks = c(18, 27, 36, 45))
DF <- data.frame(AGE, AGE_GROUPS)

AGE休息不仅仅是中间休息,也是终点休息。你可以确保你得到了一切

breaks = c(-Inf, 18, 27, 36, 45, Inf)
稍微保守一点,你可以使用

breaks = c(0, 18, 27, 36, 45, 120)

这对于捕捉异常值编码错误非常有用。您可能还需要
include.lowest=TRUE
。参见
?削减
以获取示例。

作为对下面发布的答案的补充,我想发布一个技巧,我通常会这样做,以获得更合理的削减范围。我倾向于“玩”变量的
min
max
值,这取决于我是需要
[
还是
]
。举个例子,看看这个
时代,它从技术/实践的角度解决了我的问题。谢谢从概念上讲,这是否意味着18的中断意味着18的值不包括在18-27括号中?我是否需要在这一端加一个17-27的括号?默认值为
right=TRUE
,这意味着“间隔应在右侧关闭(并在左侧打开)”(再次请参见
?cut
),即18-27间隔将是
(18,27]
(默认标签),包括27,但不包括18。为清楚起见,我建议使用非整数断点,因此如果您希望间隔同时包括18和27,请使用17.5和27.5作为断点。很明显,18和27都在该间隔内,但17和28不在该间隔内。如果您想知道为什么这看起来有点混乱,请记住
cut
没有它不仅适用于整数,还适用于任何数字数据。太好了,非常有用!我很感激。