这个问题在这里已有答案:
我有三个列表,其中包含data.frame对象,但顺序非常不同 . 我想让它们具有相同的顺序,如list1,list2或list 3.如何反转data.frame对象在不同列表中的顺序具有相同的模式/顺序?有没有人给我一些可能的想法来轻松做这种操作?非常感谢 .
通过列表中的变量,我们可以使用空气质量,虹膜,汽车,二氧化碳等公共数据在R中快速运行;
数据
list1 <- list(pass=list(Alpha.df1_yes, Beta.df1_yes, Gamma.df1_yes, Theta.df1_yes),
fail=list(Alpha.df1_no, Beta.df1_no, Gamma.df1_no, Theta.df1_no))
list2 <- list(pass=list(Beta.df2_yes, Alpha.df2_yes, Gamma.df2_yes, Theta.df2_yes),
fail=list(Beta.df2_no, Alpha.df2_no, Gamma.df2_no, Theta.df2_no))
list3 <- list(pass=list(Gamma.df3_yes, Alpha.df3_yes, Beta.df3_yes, Theta.df3_yes),
fail=list(Gamma.df3_no, Alpha.df3_no, Beta.df3_no, Theta.df3_no))
list4 <- list(pass=list( Theta.df4_yes, Alpha.df4_yes, Beta.df4_yes,Gamma.df4_yes),
fail=list(Theta.df4_no, Alpha.df4_no, Beta.df4_no,Gamma.df4_no ))
所需的输出(让我们与list1具有相同的模式):
list1 <- list(pass=list(Alpha.df1_yes, Beta.df1_yes, Gamma.df1_yes, Theta.df1_yes),
fail=list(Alpha.df1_no, Beta.df1_no, Gamma.df1_no, Theta.df1_no))
list2_NeW <- list(pass=list(Alpha.df2_yes, Beta.df2_yes, Gamma.df2_yes, Theta.df2_yes),
fail=list(Alpha.df2_no, Beta.df2_no, Gamma.df2_no, Theta.df2_no))
list3_New <- list(pass=list(Alpha.df3_yes, Beta.df3_yes,Gamma.df3_yes, Theta.df3_yes),
fail=list(Alpha.df3_no, Beta.df3_no, Gamma.df3_no, Theta.df3_no))
list4_New <- list(pass=list(Alpha.df4_yes, Beta.df4_yes,Gamma.df4_yes, Theta.df4_yes),
fail=list(Alpha.df4_no, Beta.df4_no, Gamma.df4_no, Theta.df4_no))
因为数据是嵌套结构,所以让它们在新构造的列表中具有相同的模式有点棘手 . 谁能提出可能的想法?
1 回答
我假设嵌套是常量并创建一些帮助函数以保持可读性:
为了使它更通用:
如果您愿意,可以将其应用于所有列表项(特别是如果您有更多列表项):
请注意,此解决方案非常适用于包含data.frames的嵌套列表 .