如何轻松操作列表中的data.frame让它们具有相同的模式?

Jer*_*rry 1 r dataframe

我实现了返回data.frame列表的函数,其中data.frame中索引向量的顺序不同.但是,我打算操纵这个列表,让第二个,第三个data.frame与列表中的第一个data.frame具有相同的模式.因为结果在列表中,所以我想轻松操作这个列表让data.frame对象具有相同的模式.我怎样才能轻松实现这一目标?有谁知道轻松操纵列表的任何有用技巧?提前致谢.

我的自定义函数的输出是:

dfList <- list(
  df_1 = data.frame(hola = c(1,2,3), ciao=c(NA,1,2), bonjour=c(1,1,2)),
  df_2 = data.frame(ciao = c(1,2,3), hola=c(2,3,NA), bonjour=c(1,2,4)),
  df_3 = data.frame(bonjour = c(1,2,3,4), hola=c(2,3,NA,NA), ciao=c(1,2,NA,3))
)
Run Code Online (Sandbox Code Playgroud)

我打算制作第二个,第三个data.frame与列表中的第一个data.frame具有相同的模式.如何轻松操作data.frame在列表中具有相同的模式?

期望的输出可能是:

$df_1
    hola ciao bonjour
1    1   NA       1
2    2    1       1
3    3    2       2

$df_2
    hola ciao bonjour
1    2    1       1
2    3    2       2
3    NA   3       4

$df_3
    hola ciao  bonjour 
1   2    1      1
2   3    2      2
3   NA   NA     3
4   NA   3      4
Run Code Online (Sandbox Code Playgroud)

我知道如果data.frame不在列表中会更容易,所以只需使用names()让它们具有相同的模式.但重点是列表中的data.frame现在作为输出,所以我打算很好地操作这个列表而不是访问每个data.frame三次并使用names()函数.我怎样才能做到这一点?如何实现我想要的输出?我怎样才能获得更多动态解决方案呢?非常感谢 :)

akr*_*run 5

我们可以用

lapply(dfList, function(x) x[names(dfList[[1]])])
Run Code Online (Sandbox Code Playgroud)