将两个数据框日期列合并为一列 - 按顺序

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

我的温度数据有我需要填写的缺失值,但是当我从新制作的缺失日期数据框中重新绑定新的日期值时,它最终出现在组合数据框的底部,乱序。我如何让 R 了解将它们筛选到它们所属的位置?

例子:

df1 
2022-01-01
2022-01-02
2022-01-05
2022-01-06

df2
2022-01-03
2022-01-04

CombinedDf
2022-01-01
2022-01-02
2022-01-05
2022-01-06
2022-01-03
2022-01-04

但是 Combined 出了问题,这就是我想要的样子

CombinedDf
2022-01-01
2022-01-02
2022-01-03
2022-01-04
2022-01-05
2022-01-06

df 中还有其他值和其他事情,但这只是为了说明我的问题。

我将两个列都从字符转换为日期。

然后我使用 rbind 将两个单独的列组合成一个组合列。

dataframe date rstudio lubridate rbind
1个回答
0
投票

几个选项。这是一些示例数据:

df1 <- data.frame(dates = as.Date(c("2022-01-01", 
                                    "2022-01-02", 
                                    "2022-01-05",
                                    "2022-01-06")),
                  foo = c(1:4))

df2 <- data.frame(dates = as.Date(c("2022-01-03", 
                                    "2022-01-04")),
                  foo = c(5:6))

使用

rbind()
order()

df3 <- rbind(df1, df2)
df3 <- df3[order(df3$dates, decreasing = FALSE),] # ascending
df3 <- df3[order(df3$dates, decreasing = TRUE),] # descending

从技术上讲,您不需要“减少 = FALSE”来获得您想要的结果,因为这是默认设置。

或者您可以使用

dplyr
包一步完成:

library(dplyr)

df3 <- bind_rows(df1, df2) %>% 
  arrange(dates) # ascending

df3 <- bind_rows(df1, df2) %>% 
  arrange(desc(dates)) # descending

© www.soinside.com 2019 - 2024. All rights reserved.