在大型数据集中创建唯一 ID 列

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

enter image description here`如何在大型数据集中(大约有 26000 个观察值)创建唯一 ID 列来替换旧的唯一 ID?

我尝试了此操作,但无法替换新 ID,因为数据集大约有 26,000 个 obs,并且我无法为所有 26,000 个 ID 键入“新 ID”。

library(dplyr)
newIDs <- paste0("NewID", seq_len(nrow(YourData)))
Data <- YourData %>%
  mutate(NewID = 12000, 2200)
print(Data)

我试过这个

图书馆(dplyr)

您的数据 <- data.frame( OldID = c("1", "2", "3", "4"), Value = c(1, 2, 3, 4) )

新ID <- c("12000", "22000", "32000", "42000")

您的数据 <- YourData %>% 变异(NewID = newIDs)

打印(您的数据)

但是,这创建了一个新的数据集“YourData”,包含 4 个观测值和新 ID,但我需要为 26000 个 obs 创建新 ID,并且为 26000 个 obs 创建向量是不可能的。我可以做什么来解决这个问题?

我已经添加了结果的图像。请参阅上面的链接。

r package dataset large-data uniqueidentifier
1个回答
0
投票

只需使用您刚刚创建的

newIDs
即可。

> library(dplyr)
> YourData %>%
+   mutate(NewID = newIDs)
  OldID Value  NewID
1     1     1 NewID1
2     2     2 NewID2
3     3     3 NewID3
4     4     4 NewID4

或者一步完成。

> YourData %>%
+   mutate(NewID = paste0("NewID", seq_len(nrow(.))))
  OldID Value  NewID
1     1     1 NewID1
2     2     2 NewID2
3     3     3 NewID3
4     4     4 NewID4

数据:

> YourData <- data.frame(OldID = c("1", "2", "3", "4"), Value = c(1, 2, 3, 4))
> newIDs <- paste0("NewID", seq_len(nrow(YourData)))
© www.soinside.com 2019 - 2024. All rights reserved.