行绑定(bind)数据帧并保持唯一 ID 递增

标签 r dataframe unique-id

我有 2 个数据集,我要将它们堆叠在一起。请注意,第一个数据集的 record_ids 也从 1 开始

record_id       any_column
     591             a
     591             b
     591             c
     592             d
     592             e
     592             f
     592             g
     593             h
     593             i
     593             j

第二个数据集

record_id       any_column
     1             a
     1             b
     1             c
     2             d
     2             e
     2             f
     2             g
     3             h
     3             i
     3             j 

堆叠时,我希望第二个数据集的 record_ids 在第一个数据集的 record_ids 立即结束的位置开始,在本例中为 593,我想将第二个数据集的 ids 转换为从 594 开始的内容等等。我怎样才能最好地解决这个问题?谢谢

对 future 数据集的期望如下:

record_id       any_column        grand_id
     591             a               591
     591             b               591
     591             c               591
     592             d               592
     592             e               592
     592             f               592
     592             g               592
     593             h               593
     593             i               593
     593             j               593
     1             a                 594
     1             b                 594
     1             c                 594
     2             d                 595
     2             e                 595
     2             f                 595
     2             g                 595
     3             h                 596
     3             i                 596
     3             j                 596 

最佳答案

您可以从df1获取record_idmax,并将df2<的record_id添加到其中.

rbind(transform(df1, grand_id = record_id), 
      transform(df2, grand_id = record_id + max(df1$record_id)))

如果您更喜欢dplyr:

library(dplyr)

df1 %>%
  mutate(grand_id = record_id) %>%
  bind_rows(df2 %>% mutate(grand_id = record_id + max(df1$record_id)))

#   record_id any_column grand_id
#1        591          a      591
#2        591          b      591
#3        591          c      591
#4        592          d      592
#5        592          e      592
#6        592          f      592
#7        592          g      592
#8        593          h      593
#9        593          i      593
#10       593          j      593
#11         1          a      594
#12         1          b      594
#13         1          c      594
#14         2          d      595
#15         2          e      595
#16         2          f      595
#17         2          g      595
#18         3          h      596
#19         3          i      596
#20         3          j      596

关于行绑定(bind)数据帧并保持唯一 ID 递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64383825/

相关文章:

r - 检查 R 列中是否存在值向量,然后返回单个 True 值

php - PHP uniqid()源码相关问题

Vue.js:如何为每个组件实例设置一个唯一的 ID?

r - 更改 geom_ribbon() 默认路径顺序

R markdown 与 Chunk 的交互选项

r - 为什么我的 ggplot 对象变得这么大?

python - 使用pandas将txt文件转换为dataframe

R数据框根据其他数据框填充缺失值

r - 如何在特定值出现后使所有值连续出现,R中的NA

firebase - 每次使用 Flutter/Firebase 按下上传时,如何创建唯一的图像 ID?