Tej*_*eja 10 sorting r top-n plyr
我试图从数据框架中获得顶级'n'公司.这是我的代码如下.
data("Forbes2000", package = "HSAUR")
sort(Forbes2000$profits,decreasing=TRUE)
Run Code Online (Sandbox Code Playgroud)
现在我想从这个有序向量中获得前50个观测值.
mne*_*nel 25
head并且tail是非常有用的功能!
head(sort(Forbes2000$profits,decreasing=TRUE), n = 50)
Run Code Online (Sandbox Code Playgroud)
如果你想要data.frame的前50行,那么你可以使用arrange函数from plyr来排序data.frame然后使用head
library(plyr)
head(arrange(Forbes2000,desc(profits)), n = 50)
Run Code Online (Sandbox Code Playgroud)
请注意,我profits在一个调用中包含desc它意味着它将按递减顺序排序.
没有plyr工作
head(Forbes2000[order(Forbes2000$profits, decreasing= T),], n = 50)
Run Code Online (Sandbox Code Playgroud)
使用order进行排序data.frame,然后使用head仅拿到第50行.
data("Forbes2000", package = "HSAUR")
head(Forbes2000[order(Forbes2000$profits, decreasing=TRUE), ], 50)
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用rank从dplyr.
library(dplyr)
top_fifty <- Forbes2000 %>%
filter(rank(desc(profits))<=50)
Run Code Online (Sandbox Code Playgroud)
这会按降序对您的数据进行排序,并且仅保留排名小于或等于 50(即前 50)的值。
Dplyr 非常有用。命令和链接语法非常容易理解。10/10 会推荐。