Como posso classificar um data.frame com apenas uma coluna, sem perder nomes?

data = c(1,2,3,4)
names = c("foo", "bar", "baz", "yak")
d = data.frame(data, row.names=names)

Isso retorna:

    data
foo    1
bar    2
baz    3
yak    4

Agora, gostaria de classificar esse dataframe pela coluna, sem perder os nomes de linha anexados. Então, meu resultado seria:

    data
yak    4
baz    3
bar    2
foo    1

Eu já tentei o seguinte:

d[order(-d$data),]que, claro, só me dá a lista unidimensional.

arrange(d, desc(data)) deplyr pacote, que elimina os nomes das linhas.

Descubra o pedido como = order(-d$data), depois reconstrua o quadro com

data.frame(d[o,], row.names=rownames(d)[o])

… O que ainda me deixa com o nome da coluna errada.

Existe alguma maneira sensata de fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion