我有这个向量
ages <- c(17, 18, 16, 20, 22, 23)我需要创造一个因子,它的水平为未成年人或成人,任何大于或等于18的观察都可以被认为是成年人。
我试过这个:
ages<-cut(ages, breaks=2, labels=c('Minor', 'Adult'))但它仍然标18为未成年人,但它应该是成人,我如何才能打破门槛?
发布于 2018-04-14 13:01:17
我们不需要cut只用于两组
factor(c('Minor', 'Adult')[(ages > 17) + 1])
#[1] Minor Adult Minor Adult Adult Adult
#Levels: Adult Minor此外,对于cut,如果我们不指定时间间隔,而只将其切割成两个组,则间隔将与所选的18组不同。因此,我们传递一个切点的数值vector,而不是要进行的切数,并相应指定labels。
cut(ages, c(-Inf,17, Inf), labels = c('Minor', 'Adult'))
#[1] Minor Adult Minor Adult Adult Adult
#Levels: Minor AdultOP的代码标签错误的原因是基于分组
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]在这里,切点是19.5而不是18
如果我们检查函数,可以确定它是如何计算breaks的。
https://stackoverflow.com/questions/49831697
复制相似问题