重新排列数据框列表

3

我有一个数据帧列表:

set.seed(1)
S1 = data.frame(replicate(2,sample(0:130,30,rep=TRUE)))
S2 = data.frame(replicate(2,sample(0:130,34,rep=TRUE)))
S3 = data.frame(replicate(2,sample(0:130,21,rep=TRUE)))
S4 = data.frame(replicate(2,sample(0:130,26,rep=TRUE)))
df_list1 = list(S1 = S1, S2 = S2, S3 = S3, S4 = S4)

set.seed(2)
S1 = data.frame(replicate(2,sample(0:130,30,rep=TRUE)))
S2 = data.frame(replicate(2,sample(0:130,34,rep=TRUE)))
S3 = data.frame(replicate(2,sample(0:130,21,rep=TRUE)))
S4 = data.frame(replicate(2,sample(0:130,26,rep=TRUE)))
df_list2 = list(S1 = S1, S2 = S2, S3 = S3, S4 = S4)

set.seed(3)
S1 = data.frame(replicate(2,sample(0:130,30,rep=TRUE)))
S2 = data.frame(replicate(2,sample(0:130,34,rep=TRUE)))
S3 = data.frame(replicate(2,sample(0:130,21,rep=TRUE)))
S4 = data.frame(replicate(2,sample(0:130,26,rep=TRUE)))
df_list3 = list(S1 = S1, S2 = S2, S3 = S3, S4 = S4)

set.seed(4)
S1 = data.frame(replicate(2,sample(0:130,30,rep=TRUE)))
S2 = data.frame(replicate(2,sample(0:130,34,rep=TRUE)))
S3 = data.frame(replicate(2,sample(0:130,21,rep=TRUE)))
S4 = data.frame(replicate(2,sample(0:130,26,rep=TRUE)))
df_list4 = list(S1 = S1, S2 = S2, S3 = S3, S4 = S4)

df_list = list (df_list1, df_list2, df_list3, df_list4)
names(df_list) = c("AB_df", "BC_df", "DE_df", "FG_df")

df_list = unlist(df_list, recursive = FALSE)

现在我想重新排列列表中数据框的顺序。模式应为1、5、9、13、2、6、10、14、3、7、11、15、4、8、12、16

我按照如下程序编写:

subs = 4 # Need the subs, since I have different numbers for this
idx = seq (1, length(df_list), subs)
nameorder = c(names(df_list[idx]), names(df_list[idx+1]), 
  names(df_list[idx+2]),names(df_list[idx+3]))

我现在的问题是,如何使用nameorder列表来更改我的df_list(应保留名称)。我猜这很简单,但我就是想不通。


2
你只是在寻找这个 df_list[nameorder] 吗? - Sotos
额...是的。天啊,我知道我接近了,但不是这么接近...太简单了。对此感到抱歉。 - Mr.Spock
1个回答

3
您可以尝试使用以下简单命令df_list来重新排序数据框架列表:

df_list[nameorder]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接