分配唯一值
Assigning Unique Values
我有一个数据框 (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
提前致谢
按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())
你可以使用 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())
我们可以使用data.table
。将数据转换为 'data.table' (setDT
)、order
'transfusion_date' 并在行序列
上分配 'Id'
library(data.table)
setDT(outcomes)[order(transfusion_date), Id := seq_len(.N)][]
我觉得你可以使用 order
:
outcomes$id = order(outcomes$transfusion_date)
感谢您的投入。我用了这个
outcomes <- outcomes[order(outcomes$transfusion_date), ]
结果$ID <- seq_len(nrow(结果))
我有一个数据框 (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
提前致谢
按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())
你可以使用 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())
我们可以使用data.table
。将数据转换为 'data.table' (setDT
)、order
'transfusion_date' 并在行序列
library(data.table)
setDT(outcomes)[order(transfusion_date), Id := seq_len(.N)][]
我觉得你可以使用 order
:
outcomes$id = order(outcomes$transfusion_date)
感谢您的投入。我用了这个
outcomes <- outcomes[order(outcomes$transfusion_date), ]
结果$ID <- seq_len(nrow(结果))