R 基于另一列的数值设置因子的级别

R 基于另一列的数值设置因子的级别,r,R,我一直在试图找出如何根据同一data.frame中另一列的值对因子进行排序。我一直在用这个问题作为我努力的基础: 在我的示例中,我喜欢由order\u ID设置的ftor级别order\u ID只是顺序的一个等级。以下是我到目前为止的情况: df <- data.frame(order_ID=c(5,3,1,4,2), ftor=LETTERS[1:5]) df$ftor <- factor(df$ftor, levels=df[order(df$orde

我一直在试图找出如何根据同一data.frame中另一列的值对因子进行排序。我一直在用这个问题作为我努力的基础:

在我的示例中,我喜欢由
order\u ID
设置的
ftor
级别
order\u ID
只是顺序的一个等级。以下是我到目前为止的情况:

df <- data.frame(order_ID=c(5,3,1,4,2),
           ftor=LETTERS[1:5])


df$ftor <- factor(df$ftor, levels=df[order(df$order_ID),], ordered=TRUE)
根据订单ID的值,以下是我所期望的:

> levels(df$ftor)
[1] "C" "B" "E" "D" "A"

总之,有谁能推荐一种方法,我可以使用一列的级别来设置同一数据.frame中另一个因子的级别吗?

这里的答案实际上是@RichScriven提供的,我没有设置我想要的列(
df$ftor
)的顺序,而是设置整个data.frame(
df
)。此外,索引是不可靠的。所以最终我替换了这个:

df$ftor <- factor(df$ftor, levels=df[order(df$order_ID),], ordered=TRUE)

df$ftor这里的答案实际上是@RichScriven提供的,我没有设置我想要的列(
df$ftor
)的顺序,而是设置整个data.frame(
df
)。此外,索引是不可靠的。所以最终我替换了这个:

df$ftor <- factor(df$ftor, levels=df[order(df$order_ID),], ordered=TRUE)

df$ftor应该是
levels=df$ftor[order(df$order\u ID)]
Perfect@RichScriven如果你想把这个作为答案,我会接受的。我明白问题所在。感谢您的帮助。它应该是
levels=df$ftor[order(df$order\u ID)]
完美@RichScriven如果你想把这个作为答案,我会接受的。我明白问题所在。谢谢你的帮助。
df$ftor <- factor(df$ftor, levels=df$ftor[order(df$order_ID)], ordered=TRUE)