r - 根据分组的 id 创建新的观察结果
问题描述
我想基于另一个 id 变量创建一个新的 id 变量。这是我的数据的样子:
ID
250
250
340
340
340
650
650
650
我想:
ID New_ID
250 1
250 1
340 2
340 2
340 2
650 3
650 3
650 3
我尝试在 tidyverse 中使用“group_by”,但我遇到了错误。有人可以帮忙吗?
解决方案
一种选择是使用rleid
from data.table
:
data.table::rleid(d$ID)
# [1] 1 1 2 2 2 3 3 3
将该列添加到数据中:
d %>%
mutate(new_id = data.table::rleid(ID))
ID new_id
1 250 1
2 250 1
3 340 2
4 340 2
5 340 2
6 650 3
7 650 3
8 650 3
另一种选择是利用该factor
功能。即使您的数据未按以下方式排序,这也将起作用ID
:
d %>%
mutate(new_id = as.numeric(factor(ID)))
ID new_id
1 250 1
2 250 1
3 340 2
4 340 2
5 340 2
6 650 3
7 650 3
8 650 3
数据
d <- structure(list(ID = c(250L, 250L, 340L, 340L, 340L, 650L, 650L,
650L)),
class = "data.frame",
row.names = c(NA, -8L))
推荐阅读
- python-3.x - 当我尝试使用 conda 命令更新所有内容时出现“请求”错误
- python - 连接不同尺寸的 ImageClip 时,Moviepy 存在问题
- c# - Episerver:可排序的 iList
在 Azure 上无法正确显示 - firebase - 由于 build.gradle 问题,flutter firebase facebook 登录无法在 android 上运行
- c# - 使用传递对象的并行 foreach 循环
- python - binance api上的“时间戳提前1000毫秒”错误?
- javascript - JavaScript:如果它在一个字段上具有固定费率,则获取 clearname
- c++ - 使用 std::vector 时的简单 Boost UDP 接收器 gest heap-use-after-free
- javascript - 基于组件的网站设计中的 javascript 或 html 标题
- excel - 使用 VBA 通过自动填充插入行