如何通过增加顺序对列表中的data.frame对象集进行排序?

如何通过增加顺序对列表中的data.frame对象集进行排序?,r,sorting,dataframe,R,Sorting,Dataframe,我在列表中有一组data.frame对象。我想按递增顺序对它们进行排序。但是,我模拟了列表中5个data.frame对象的数据,如何对它们进行排序?有人知道在R中这样做有什么有用的技巧吗?提前谢谢 data.frame对象集 df1您可以使用[重新排列(和子集)列表: 要对列表进行随机排序,可以使用sample: test_rand <- df.list[sample(seq_len(length(df.list)), length(df.list))] test\u rand一个选项是

我在列表中有一组data.frame对象。我想按递增顺序对它们进行排序。但是,我模拟了列表中5个data.frame对象的数据,如何对它们进行排序?有人知道在R中这样做有什么有用的技巧吗?提前谢谢

data.frame对象集
df1您可以使用
[
重新排列(和子集)列表:

要对列表进行随机排序,可以使用
sample

test_rand <- df.list[sample(seq_len(length(df.list)), length(df.list))]

test\u rand一个选项是创建
名称的
向量
(或者如果OP打算将'd1',d2',d3'作为'df.list'的
名称
-
v1如果df.list超过三个data.frame对象(例如,10到100),该怎么办在it中?在这种情况下,您的方法是否仍然可行?您没有激发对列表进行重新排序的需要,而且我还没有看到您提供的模式。我将为更长的列表添加两种方法。@user88911如果您检查
df.list
,实际上找不到'd1',d2',d3'。最好给df.lis命名您可能必须使用
list(d1=data.frame(..
我输入了错别字,现在我更新了我的帖子,d1、d2、d3是存在的,它们是df.list的列表元素。@user88911如果这些是
名称
,那么我的解决方案应该可以用。是的,我同意你的解决方案,它是有动机的。不幸的是,我的模拟数据和期望的输出混淆了读者,对此我深表歉意。仅供参考,我更新了所有文本a。)目标明确的nd玩具数据。感谢您的帮助,谢谢。解释重新排序的规则。您的三个示例不清楚,更不用说您对10-100的扩展了。给我一些时间用清晰的示例更新。干杯
out_1 <- list(df1, df2, df3, df4, df5)  # original 
out_2 <- list(df2, df1, df3, df4, df5)
out_3 <- list(df3, df1, df2, df4, df5)
out_4 <- list(df4, df1, df2, df3, df5)
out_5 <- list(df5, df1, df2, df3, df4)
test_1 <- df.list[c(1, 2, 3)]
test_2 <- df.list[c(2, 1, 3)]
test_3 <- df.list[c(3, 1, 2)]
test_1.1 <- df.list[c(1, 2)]
test_1.1 <- df.list[c(2, 1)]
test_1 <- df.list[seq_len(length(df.list))]
test_2 <- df.list[c(2, seq_len(length(df.list))[-2])]
test_3 <- df.list[c(3, seq_len(length(df.list))[-3])]
test_rand <- df.list[sample(seq_len(length(df.list)), length(df.list))]
v1 <- paste0("d", 1:3)
lst <- lapply(seq_along(v1), function(i) df.list[c(v1[i], v1[-i])])
names(lst[[1]])
#[1] "d1" "d2" "d3"
names(lst[[2]])
#[1] "d2" "d1" "d3"
names(lst[[3]])
#[1] "d3" "d1" "d2"
v2 <- seq_along(d.list)
lst2 <- lapply(v2, function(i) d.list[c(i, setdiff(v2, i))])
identical(lst2[[1]], out_1)
#[1] TRUE
identical(lst2[[2]], out_2)
#[1] TRUE
identical(lst2[[3]], out_3)
#[1] TRUE

identical(lst2[[4]], out_4)
#[1] TRUE
identical(lst2[[5]], out_5)
#[1] TRUE
names(df.list) <- v1