R-有没有更好的方法来订购水平和因素?我已经成功订购了它们,但是必须有一种更优雅的方式



创建一个月向量。

> mths<-month.abb
> mths
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"

但这是字符向量,因此我将其转换为因素:

> mths1<-factor(mths)
> mths1
[1] Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Levels: Apr Aug Dec Feb Jan Jul Jun Mar May Nov Oct Sep

,但是现在级别的级别显示为字母,这不是我们想要的。尝试以下内容,我们以正确的顺序获得级别,但数据混乱。

> levels(mths1)<-mths
> mths1
 [1] May Apr Aug Jan Sep Jul Jun Feb Dec Nov Oct Mar
Levels: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

然后我尝试了:

> mths1[]<-mths
> mths1
 [1] Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Levels: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

现在的因素及其水平都正确分类了。

我想知道上述每种情况下幕后发生的动态是什么,因为对级别和数据的分配使我有些困惑。

最后,实现同一事物的更优雅的方法是什么?

将上述评论组合到答案

mths<-month.abb
mths
# [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
mths1 <-factor(mths, levels=mths, ordered=TRUE) 
mths1
# [1] Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
# Levels: Jan < Feb < Mar < Apr < May < Jun < Jul < Aug < Sep < Oct < Nov < Dec

相关内容

最新更新