nik*_*UoM 6 r subset tabular r-table
我想创建一个简单的表,展示我的数据集中给定变量的最大10个值,以及每个观察的4个其他变量,所以基本上是我的数据的一小部分.它看起来像这样:
Score District Age Group Gender
17 B 23 Red 1
12 A 61 Red 0
11.7 A 18 Blue 0
10 B 18 Red 0
.
.
etc.
Run Code Online (Sandbox Code Playgroud)
从而在Score var上对数据进行排序.所有数据都包含在同一数据帧中.
你可以使用arrangefrom 来做到这一点dplyr.如果存在分组变量,这也应该有效.只需添加group_by之前arrange.我们使用过滤前10个观测值slice.
library(dplyr)
df1 %>%
arrange(desc(Score)) %>%
slice(1:10)
Run Code Online (Sandbox Code Playgroud)
或者另一种选择?top_n(由@docendodiscimus评论),dplyr其中包含使用filter和min_rank选择"得分"的前n个(即10个)条目.
top_n(df1, 10, Score)
Run Code Online (Sandbox Code Playgroud)
或者我们filter通过创建一个row_number等价的逻辑条件来使用rank(ties.method='first')(由@Steven Beaupre提供)
filter(df1, row_number(desc(Score)) <= 10)
Run Code Online (Sandbox Code Playgroud)
或者是data.table选项(由@David Arenburg提供).我们将'data.frame'转换为'data.table'(setDT(df1)),order(递减)'Score'变量,并选择前10个观察值. .SD手段Subset of DataTable.
library(data.table)
setDT(df1)[order(-Score), .SD[1:10]]
Run Code Online (Sandbox Code Playgroud)
这应该做到......
data <- data[with(data,order(-Score)),]
data <- data[1:10,]
| 归档时间: |
|
| 查看次数: |
18653 次 |
| 最近记录: |