r - 如何只保留列中的前 n 行
问题描述
我有一个这样的数据框:
ID | Item |
1 | A |
1 | B |
2 | A |
3 | B |
1 | C |
4 | C |
5 | B |
3 | A |
4 | A |
5 | D |
在 R 中,如何仅保留项目列中的前 N 个值(按计数)?我还想用“其他”填充不在 Top N 中的值。前 2 个值的预期结果:
ID | Item |
1 | A |
1 | B |
2 | A |
3 | B |
1 | Others |
4 | Others |
5 | B |
3 | A |
4 | A |
5 | Others |
我也如何处理领带盒?
解决方案
实现此目的的一种方法是fct_lump
使用forcats
package.json 。示例代码:
library(dplyr)
library(forcats)
set.seed(42)
df <- tibble(
id = sample(1:5, 10, replace = TRUE),
item = sample(LETTERS[1:4], 10, replace = TRUE))
df %>%
dplyr::mutate(item = forcats::fct_lump(item, 2))
输出:
# A tibble: 10 x 2
id item
<int> <fct>
1 1 A
2 5 A
3 1 B
4 1 Other
5 2 B
6 4 B
7 2 Other
8 2 Other
9 1 A
10 4 A
推荐阅读
- docker - 如何在 docker swarm 模式下使用 express api 网关?
- dependency-injection - 如何在 SAPUI5 中注入自定义服务
- html - 如何将内容元素与 wordpress 自定义 css 居中对齐?
- python - 在函数错误中使用数组
- javascript - 在反应中将值传递给子组件(this.props.children)
- wear-os - 移除 WearableRecyclerView 额外的顶部空间
- javascript - 如何在 JavaScript/jQuery 中获取没有重复数字的随机数?
- parsing - 先计算并遵循一组语法
- javascript - 如何在选择 AngularJS 中禁用空白选项?
- reactjs - 使用 mobx-react 注入嵌套组件