我有 2 个要合并的数据集。但在此之前,我想将 ID 增加为
tail(df1$ID, n=1) + 1
只要 df2
的最后一行
df1 <- data_frame(ID = c(1:4), valueA = seq(0.1,0.4,0.1), Category= "Apples" )
df2 <- data_frame(ID = "I NEED TO DEFINE", valueA = seq(0.1,0.4,0.1), Category= "Apples2")
tail(df1$ID, n=1)
预期答案
ID ValueA Category
1 0.1 Apples
2 0.2 Apples
3 0.3 Apples
4 0.4 Apples
5 0.1 Apples2
6 0.2 Apples2
7 0.3 Apples2
8 0.4 Apples2
如何解决这个问题?非常感谢。
一种方法可能是在
df2
中对ID进行排序然后使用rbind
:
df2$ID <- (nrow(df1) + 1):(nrow(df1) + nrow(df2))
rbind(df1, df2)
输出:
ID valueA Category
<int> <dbl> <chr>
1 1 0.1 Apples
2 2 0.2 Apples
3 3 0.3 Apples
4 4 0.4 Apples
5 5 0.1 Apples2
6 6 0.2 Apples2
7 7 0.3 Apples2
8 8 0.4 Apples2
你已经完成了 90%!定义
end
作为 df1
最后一行的 ID 值,并用 :
递增:
end <- tail(df1$ID, n=1)
df2$ID <- (end+1):(end+nrow(df2))
bind_rows(df1, df2)
这给了我你预期的输出。
我们可以使用
bind_rows
:
library(dplyr)
bind_rows(df1, df2 %>%
mutate(ID = nrow(df1)+row_number()))
ID valueA Category
<int> <dbl> <chr>
1 1 0.1 Apples
2 2 0.2 Apples
3 3 0.3 Apples
4 4 0.4 Apples
5 5 0.1 Apples2
6 6 0.2 Apples2
7 7 0.3 Apples2
8 8 0.4 Apples2