【发布时间】:2019-05-30 20:47:02
【问题描述】:
我正在使用tidyverse 包进行数据清理的学校项目。现在我从purrr::map() 得到一个列表输出,如下所示:
(mylist <- list(A = as.Date(sample(1e3:1e4, 4), origin = "1960-01-01"),
B = as.Date(sample(1e3:1e4, 2), origin = "1960-01-01"),
C = as.Date(sample(1e3:1e4, 3), origin = "1960-01-01")))
$A
[1] "1970-06-12" "1984-05-28" "1967-06-28" "1982-12-14"
$B
[1] "1966-02-04" "1967-02-21"
$C
[1] "1977-07-19" "1968-03-11" "1964-02-13"
我想将它们堆叠到:
df <- data.frame(Value = reduce(mylist, c))
df$Class <- rep(names(mylist), sapply(mylist, length))
df
Value Class
1 1970-06-12 A
2 1984-05-28 A
3 1967-06-28 A
4 1982-12-14 A
5 1966-02-04 B
6 1967-02-21 B
7 1977-07-19 C
8 1968-03-11 C
9 1964-02-13 C
-
注意1:每个单元格的长度不同,列表中的值实际上是
Date类。 -
注意2:
stack(mylist)在日期列表中不起作用。
有没有什么方法可以通过tidyverse或其他包中的函数高效实现?
【问题讨论】:
-
我编辑我的问题。
stack()在日期列表中不起作用。