这个简单的例子演示了重新排序命令的工作原理:
public static String decryptData(final String data, final String password) throws Exception {
MessageDigest instance=MessageDigest.getInstance("SHA-1");
byte[] passworddigest=instance.digest(password.getBytes("utf-8"));
byte[] key=Arrays.copyOf(passworddigest, 24);
final SecretKeySpec secretKeySpec = new SecretKeySpec(key, "DESede");
final byte[] decodeddata = Base64.decode(data.getBytes("utf-8"), Base64.DEFAULT);
final Cipher ciperInstance = Cipher.getInstance("DESede");
ciperInstance.init(DECRYPT_MODE, secretKeySpec);
byte[] res= ciperInstance.doFinal(decodeddata);
return new String(res, "UTF-8");
}
如果我将相同的语法应用于不同的数据,则重新排序不起作用。见这个例子:
library(ggplot2)
df <- data.frame(Category = sample(LETTERS), Count = rpois(26, 6))
ggplot(df, aes(reorder(Category, -Count), Count)) + geom_bar(stat = "identity")
第二个例子中的顺序似乎很随机,第一个例子显然是下降的。有什么不同?第二个例子是如何排序的?我无法理解。
答案 0 :(得分:2)
您的第一个数据框df
已经汇总,而mpg
则没有汇总。因此,在重新排序因子级别之前,您应首先聚合数据帧,请尝试:
library(dplyr)
mpg <- mpg %>% group_by(manufacturer) %>% summarize(hwy=sum(hwy))
ggplot(mpg, aes(reorder(manufacturer, -hwy), hwy)) + geom_bar(stat = "identity")
希望这有帮助!