我有这个载体
ages <- c(17, 18, 16, 20, 22, 23)
我需要创建一个具有次要或成人等级的因子,其中任何大于或等于18的观察都有资格成年人。
我试过了:
ages<-cut(ages, breaks=2, labels=c('Minor', 'Adult'))
但它仍将18标记为Minor,但它应该是Adult 我怎样才能打破门槛?
答案 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]