R切割具有指定断点的函数

时间:2018-04-14 12:58:03

标签: r

我有这个载体

ages <- c(17, 18, 16, 20, 22, 23)

我需要创建一个具有次要或成人等级的因子,其中任何大于或等于18的观察都有资格成年人。

我试过了:

ages<-cut(ages, breaks=2, labels=c('Minor', 'Adult'))

但它仍将18标记为Minor,但它应该是Adult 我怎样才能打破门槛?

1 个答案:

答案 0 :(得分:2)

我们不仅仅需要cut两个小组

factor(c('Minor', 'Adult')[(ages  > 17) + 1])
#[1] Minor Adult Minor Adult Adult Adult
#Levels: Adult Minor

另外,对于cut,如果我们没有指定间隔并且只切成2组,则间隔将与18中选择的间隔不同。因此,我们传递数字{{ 1}}切割点而不是切割次数,并相应地指定vector

labels

OP代码标注错误的原因是基于分组

cut(ages, c(-Inf,17, Inf), labels = c('Minor', 'Adult'))
#[1] Minor Adult Minor Adult Adult Adult
#Levels: Minor Adult

这里,切点是19.5而不是18

如果检查函数

,可以确定如何计算cut(ages, 2) #[1] (16,19.5] (16,19.5] (16,19.5] (19.5,23] (19.5,23] (19.5,23] #Levels: (16,19.5] (19.5,23]