如何重新排序因子

时间:2014-04-22 22:25:19

标签: r

我想根据其中一个行重新排序一个因子。例如,我想重新排序"国家"因素基于与以下2014年条目相对应的值。英国将排名第一,美国排名第二。

dat <- data.frame(
  country=c("USA","USA","UK","UK"),
  year=c(2014,2013,2014,2013),
  value=c(2,NA,1,NA)
)    

  country year value
1     USA 2014     2
2     USA 2013    NA
3      UK 2014     1
4      UK 2013    NA

我不太清楚如何重新排序因素。似乎reorder命令替换了data.frame中的整个列,但我认为我只需要为factor标签指定新订单。 &#34;电平&#34;似乎做了相反的事情,给订单贴上标签。

2 个答案:

答案 0 :(得分:2)

也许这个:

factor(dat$country, levels=with(dat[dat$year==2014,], country[order(value)] ))
#[1] USA USA UK  UK 
#Levels: UK USA

答案 1 :(得分:0)

factor(country<-c("USA","USA","UK","UK"),level <- c("UK","USA"))
sort(country)