我有三个列表,其中包含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 <- 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))
因为数据是嵌套结构,所以让它们在新构造的列表中具有相同的模式有点棘手。谁能提出可能的想法?
答案 0 :(得分:1)
我假设嵌套是常量并创建一些帮助函数以保持可读性:
=begin
foo
bar
=end
使它更通用:
=begin
foo
bar
=end
如果您愿意,可以将其应用于所有列表项(特别是如果您有更多列表项):
exchangeDF <- function(List, newOrder){
return(List[newOrder])
}
newOrder <- c(2,1,3,4)
list2_NeW <- list(pass = exchangeDF(list2$pass, newOrder),
fail = exchangeDF(list2$fail, newOrder))
#....
请注意,此解决方案非常适用于包含data.frames的嵌套列表。