【问题标题】:Reorder list of dataframes重新排序数据框列表
【发布时间】:2020-02-24 21:03:28
【问题描述】:

我有一个数据框列表:

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(名称应该保留)。我想它很简单,但我就是不明白。

【问题讨论】:

  • 您只是在寻找这个df_list[nameorder]吗?
  • 呃...是的。天哪,我知道我很接近,但不是那么接近……太容易了。对此感到抱歉。

标签: r dataframe reorderlist


【解决方案1】:

您可以尝试如下简单的命令df_list 来重新排序data frames 的列表:

df_list[nameorder]

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2019-02-12
    • 2014-02-02
    • 2019-03-20
    • 2019-12-20
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2022-06-12
    相关资源
    最近更新 更多