我想根据其中一个行重新排序一个因子。例如,我想重新排序"国家"因素基于与以下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;似乎做了相反的事情,给订单贴上标签。
答案 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)