我使用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
答案 0 :(得分: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)))