【问题标题】:Creating two lists from one从一个列表创建两个列表
【发布时间】:2014-06-29 04:12:57
【问题描述】:

我使用lapply(list, table) 来获取我的元素在列表中的频率。有没有办法将此列表分成两个单独的列表?

l1 <- c("1030","110"....) #Factors
l2 <- c(2,1,...) #Numbers

$`1`

1030  110  130   15  164   20  212  227   27  282  289  293   30  303  317  318  344  404   41  462  471 
   2    1   12   11    4    1    4    1    5    1    5    2    1    4    1    5    1    1    2    2    3 
 476   48  480  486    5  502   52  521  522  526   56  577   58  590   60  607  624  634  645  659   66 
   2   20    1    4    5    1    1    2    5    2    1    1    1    1    6    2    1    1    1    2    3 
 664  674  686   69  737  803  810  815   85   86   87  885   89  894   91  913  917   96  963  970   98 
   1    1    4    2    1    1    1    1    6    1    3    2    1    1    1    2    1    5    1    1    1 
  99 
   4 

【问题讨论】:

    标签: r list


    【解决方案1】:

    使用names 获取表的名称(即用于l1)并使用unname 从未列出的向量中删除名称属性(即用于l2)。

    # some data
    s <- list(sample(1:10, 100, T), sample(1:10, 100, T))
    l <- lapply(s, table)
    
    # if you want to combine all elements of list together
    l1 <- names(unlist(l))
    l2 <- unname(unlist(l))
    
    # you want to maintain the list structure
    lapply(l, function(i) list(l1=names(i), l2=unname(i)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-08
      • 1970-01-01
      相关资源
      最近更新 更多