分配唯一值

问题描述 投票:0回答:2

我有一个数据框(02outcomes $ transfusion_date),其中有一系列看起来像这样的日期:

2020-03-28 18:01:00 2020-03-28 22:16:00 2020-04-01 19:30:00 2020-04-01 23:56:00

我想像这样为每个人分配唯一的ID:

1 2020-03-28 18:01:00 2 2020-03-28 22:16:00 3 2020-04-01 19:30:00 4 2020-04-01 23:56:00

值必须按时间顺序升序。

附带说明,当我使用dput函数查看数据时,看起来像这样吗?:1588635000、1588706160、1588714320、1588721640、1588881900

我发现了一个看似相似但无法使这些解决方案起作用的线程:Create an ID (row number) column

提前感谢

r rstudio uniqueidentifier
2个回答
1
投票

transfusion_date排列数据,然后可以为每行创建唯一索引。

在R底下,您可以执行:

outcomes <- outcomes[order(outcomes$transfusion_date), ]
outcomes$ID <- seq_len(nrow(outcomes))

或使用dplyr

library(dplyr)
outcomes %>% arrange(transfusion_date) %>% mutate(Id = row_number())

0
投票

您可以使用dplyr

library(tidyverse)
library(lubridate)


testing <- data.frame(dates = c(ymd_hms("2020-03-28 18:01:00"),
                                ymd_hms("2020-03-28 22:16:00"),
                                ymd_hms("2020-04-01 19:30:00"),
                                ymd_hms("2020-04-01 23:56:00")))

testing %>% 
  arrange(dates) %>% 
  mutate(ids = row_number())
© www.soinside.com 2019 - 2024. All rights reserved.