R 如何拆分和重新排列列表

R 如何拆分和重新排列列表,r,R,我有一个年\月数据帧列表。 他们是这样的 List=c(A2017_1,A2017_2,….A2017_12,A2018_1,…A2018_12,…)依此类推 我想用月份来重新排列这个列表,如下所示: month_1 = c(A2017_1, A2018_1, A2019_1, ....) month_2 = c(A2017_2, A2018_2, A2019_2, ....) . . 。。。等等 这就是我试过的 for (x in 1:12){ LF <- emp_yymm[gre

我有一个年\月数据帧列表。 他们是这样的
List=c(A2017_1,A2017_2,….A2017_12,A2018_1,…A2018_12,…)
依此类推

我想用月份来重新排列这个列表,如下所示:

 month_1 = c(A2017_1, A2018_1, A2019_1, ....)
 month_2 = c(A2017_2, A2018_2, A2019_2, ....)
.
.
。。。等等

这就是我试过的

for (x in 1:12){
LF <- emp_yymm[grep(str_c('+_', x,'$'), names(emp_yymm))]
LFF <-append(LFF, as.list(LF))
names(LFF)[x]<- str_c('mon_',x)
}
for(1:12中的x){

如果你真的应该从一些可复制的例子开始,但下面是我给出的解决方案,假设你的数据有一些问题

 name <- paste0("A",rep(c("2017","2018","2019","2020"), each = 12), "_",rep(1:12, 4))
 L <- vector("list",48)
 names(L) <- name

 Final <- vector("list",0)
 for(x in 1:12){
   indx <- grep(pattern = paste0("_",x,"$"), x = names(L)) #find index of things ending in _num
   ord <- order(names(L)[indx]) #correct order
   tmp <- L[indx[ord]] # make list subset
   Final <- c(Final,tmp) # build list
 }
name
for(1:12中的x){

如果您提供了一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,那么就更容易为您提供帮助。请确保您的示例使用了有效的R代码。通常情况下,仅代码的答案并不特别有用。您应该解释此代码如何解决问题。
for (x in 1:12){
  LF <- emp_yymm[grep(str_c('+_', x,'$'), names(emp_yymm))]
  if(x<10){
  assign(str_c('mon_0',x),LF)
  }
  else{
    assign(str_c('mon_',x),LF)
  }

}

monlist<-mget(ls(pattern="mon_\\d+"))