dplyrのtop_n関数の出力を理解できません。誰でも助けることができますか?私は予想通りtop_nとrのオーダー
n=10
df = data.frame(ref=sample(letters,n),score=rnorm(n))
require(dplyr)
print(dplyr::top_n(df,5,score))
print(df[order(df$score,decreasing = T)[1:5],])
top_n
からの出力は、スコアに従って順序付けされていません。両方の出力が同じであるが、top_n
私が読んだ文書はまた、例えば、top_n
結果は指定した列で発注する必要があり意味
https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf
ref score 1 i 0.71556494 2 p 0.04463846 3 v 0.37290990 4 g 1.53206194 5 f 0.86307107 ref score 7 g 1.53206194 10 f 0.86307107 1 i 0.71556494 6 v 0.37290990 4 p 0.04463846
実際にはresutは同じですが、 'top_n'では5行が元の順序で残ります。試してください: 'df%>%top_n(5)%>%arrange(desc(score))' – agenis
確かに。 'top_n'は' filter(x、min_rank(desc(wt))<= n) 'と同じですが、行の順序付けは行われません。 – Axeman
@Axeman私はドキュメントが発注を示唆していると思います。質問にリンクされているチートシートには、「トップnのエントリを選択して注文する」と記載されています。 '?dplyr :: top_n'と入力すると、 が返されます。top_n {dplyr} \t Rドキュメント 値の上位n行を選択します。 説明 これは、filterおよびmin_rankを使用して、各グループの上位n個のエントリをwtで順序付けするのに便利なラッパーです。 –