需要帮助重塑R数据集吗

需要帮助重塑R数据集吗,r,dataframe,reshape,melt,R,Dataframe,Reshape,Melt,我的数据集当前看起来像这样: id date00 var1_00 var2_00 date01 var1_01 var2_01 1 1/1/2019 1 2 1/1/2020 3 4 2 2/2/2019 1 2 2/2/2020 3 4 3 3/3/2019 1 2 3/3/2020 3 4 id date var1_00 var2_00 var1_01 var2_01

我的数据集当前看起来像这样:

id  date00  var1_00 var2_00 date01  var1_01 var2_01
1   1/1/2019    1   2       1/1/2020    3   4
2   2/2/2019    1   2       2/2/2020    3   4
3   3/3/2019    1   2       3/3/2020    3   4
id  date    var1_00 var2_00 var1_01 var2_01
1   1/1/2019    1   2       NA      NA
2   2/2/2019    1   2       NA      NA
3   3/3/2019    1   2       NA      NA
1   1/1/2020    NA  NA      3       4
2   1/1/2020    NA  NA      3       4
3   1/1/2020    NA  NA      3       4
表的代码为:

structure(list(id = c(1, 2, 3), date00 = structure(c(1546300800, 
1549065600, 1551571200), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
    var1_00 = c(1, 1, 1), var2_00 = c(2, 2, 2), date01 = structure(c(1577836800, 
    1580601600, 1583193600), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
    var1_01 = c(3, 3, 3), var2_01 = c(4, 4, 4)), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame"))
我如何重塑它,使其看起来像这样:

id  date00  var1_00 var2_00 date01  var1_01 var2_01
1   1/1/2019    1   2       1/1/2020    3   4
2   2/2/2019    1   2       2/2/2020    3   4
3   3/3/2019    1   2       3/3/2020    3   4
id  date    var1_00 var2_00 var1_01 var2_01
1   1/1/2019    1   2       NA      NA
2   2/2/2019    1   2       NA      NA
3   3/3/2019    1   2       NA      NA
1   1/1/2020    NA  NA      3       4
2   1/1/2020    NA  NA      3       4
3   1/1/2020    NA  NA      3       4

谢谢大家!

我试了一下,得出了这个解决方案。请让我知道

library(dplyr)

df1 <- df %>% 
  mutate(date=date00,
         var1_01=NA,
         var2_01=NA) %>% 
  select(id, date, var1_00, var2_00, var1_01, var2_01) 

df2 <- df %>% 
  mutate(date=date01,
         var1_00=NA,
         var2_00=NA) %>% 
  select(id, date, var1_00, var2_00, var1_01, var2_01)

df_new <- rbind(df1, df2)
库(dplyr)
df1%
变异(日期=日期00,
var1_01=NA,
var2_01=NA)%>%
选择(id、日期、var1\u 00、var2\u 00、var1\u 01、var2\u 01)
df2%
变异(日期=日期01,
var1_00=NA,
var2_00=NA)%>%
选择(id、日期、var1\u 00、var2\u 00、var1\u 01、var2\u 01)

df_new我试了一下,得出了这个解决方案。请让我知道

library(dplyr)

df1 <- df %>% 
  mutate(date=date00,
         var1_01=NA,
         var2_01=NA) %>% 
  select(id, date, var1_00, var2_00, var1_01, var2_01) 

df2 <- df %>% 
  mutate(date=date01,
         var1_00=NA,
         var2_00=NA) %>% 
  select(id, date, var1_00, var2_00, var1_01, var2_01)

df_new <- rbind(df1, df2)
库(dplyr)
df1%
变异(日期=日期00,
var1_01=NA,
var2_01=NA)%>%
选择(id、日期、var1\u 00、var2\u 00、var1\u 01、var2\u 01)
df2%
变异(日期=日期01,
var1_00=NA,
var2_00=NA)%>%
选择(id、日期、var1\u 00、var2\u 00、var1\u 01、var2\u 01)

df_new这里有一个
数据表
选项,使用
rbindlist

setDT(df)
dt1 <- setnames(df[,.SD,.SDcols = grep("^id|00$",names(df))],"date00","date")
dt2 <- setnames(df[,.SD,.SDcols = grep("^id|01$",names(df))],"date01","date")
out <- rbindlist(list(dt1,dt2),fill = TRUE)

下面是一个使用
rbindlist

setDT(df)
dt1 <- setnames(df[,.SD,.SDcols = grep("^id|00$",names(df))],"date00","date")
dt2 <- setnames(df[,.SD,.SDcols = grep("^id|01$",names(df))],"date01","date")
out <- rbindlist(list(dt1,dt2),fill = TRUE)

能否提供用于创建示例表的代码?使用原始的
data.frame()
调用,或者使用
dput()
来生成代码在这里:>dput(示例)结构(list(id=c(1,2,3),date00=structure(c(15463000800,1549065600,1551571200),class=c(“POSIXct”,“POSIXt”),tzone=“UTC”),var1_00=c(1,1,1),var2,2),date01=structure(c(1577836800,1580610600,1583193600),class=c(“POSIXct”,“POSIXt”),tzone=“UTC”),var1_01=c(3,3,3),var2_01=c(4,4,4)),row.names=c(NA,-3L),class=c(“tbl_-df”,“tbl”,“data.frame”))您可以提供用于创建示例表的代码吗?可以使用原始
data.frame()
调用,也可以使用
dput()
在这里生成代码:>dput(示例)结构(list(id=c(1,2,3),date00=structure(c(15463000800,1549065600,1551571200),class=c(“POSIXct”,“POSIXt”),tzone=“UTC”),var1_00=c(1,1,1),var2_00=c(2,2,2),date01=structure(c(15778336800,1580616000,1583193600),class=c(“POSIXct”,“POSIXt”),tzone=“UTC”),var1_01=c(3,3,3),var2_01=c(4,4,4)),row.names=c(NA,-3L),class=c(“tbl_-df”,“tbl”,“data.frame”))