提问人:Seyma Kalay 提问时间:5/5/2023 更新时间:5/5/2023 访问量:35
向量值的递增至行号
Increment the vector value as long as the row number
问:
我有 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
如何解决这个问题?提前非常感谢。
答:
1赞
jpsmith
5/5/2023
#1
一种方法可能是对 ID 进行排序,然后使用:df2
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
1赞
C. Murtaugh
5/5/2023
#2
你已经完成了 90% 的路程!定义为最后一行的 ID 值,并用 递增:end
df1
:
end <- tail(df1$ID, n=1)
df2$ID <- (end+1):(end+nrow(df2))
bind_rows(df1, df2)
这给了我你预期的输出。
2赞
TarJae
5/5/2023
#3
我们可以使用: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
评论