我有 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_id
的max
,并将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/