r - R - 有没有办法在重复即将进行的观察后生成从 1 开始的行号?
问题描述
在此处输入图像描述标题绝对不足以理解我的问题。简而言之,这是我的数据:
|ID | group |
|---|-------|
| 1 | Banana|
| 2 | Apple |
| 3 | Apple |
| 4 | Apple |
| 5 | Banana|
| 6 | Banana|
| 7 | Apple |
| 8 | Apple |
现在我想创建一个按组编号的变量,但是在新的观察后它不应该再次从 1 开始。所以基本上它看起来像这样:
|ID | group | row_number |
|---|-------|------------|
| 1 | Banana| 1 |
| 2 | Apple | 1 |
| 3 | Apple | 2 |
| 4 | Apple | 3 |
| 5 | Banana| 2 |
| 6 | Banana| 3 |
| 7 | Apple | 4 |
| 8 | Apple | 5 |
什么时候应该是这样的:
|ID | group | row_number |
|---|-------|------------|
| 1 | Banana| 1 |
| 2 | Apple | 1 |
| 3 | Apple | 2 |
| 4 | Apple | 3 |
| 5 | Banana| 1 |
| 6 | Banana| 2 |
| 7 | Apple | 1 |
| 8 | Apple | 2 |
不得不提的是,我有很多观察,而不仅仅是 Apple 和 Banana 这两组。因此,不幸的是,我必须将组命名为“Apple”和“Banana”的代码没有帮助。我试图解决这样的问题:
df1<- df1%>%
group_by(group) %>%
mutate(numbering = row_number())
但是这里的错误是显而易见的。我也试图解决这个问题,但这非常困难。如果有人有解决方案,我将非常感激!
解决方案
另一种方式:
df %>%
mutate(Temp=data.table::rleid(group)) %>%
group_by(Temp) %>%
mutate(row_number=row_number()) %>%
select(-Temp)
推荐阅读
- sql - SQLite 子查询,具有可变数量的输入
- c++ - 函数错误 C2059:语法错误:“>”不起作用
- javascript - React Native Confusion 与导航
- camera - 如何将 Google Assistant 服务集成到我的相机中?我们想为商业开发一款带声音的相机
- api - Microsoft Graph API 中与 SharePoint 相关的所有终结点是什么?
- macos - Jenkins 安装问题
- python - 如何使用 Python 从 Yahoo Finance 获取行业数据?
- php - 显示图像 laravel
- powershell - PowerShell 范围标识符
- asp.net-core - 为什么当我从客户端发送请求时出现 CORS 策略错误?