【发布时间】:2017-10-31 14:59:16
【问题描述】:
我正在尝试将包含多个不同长度(类型因子)的向量的列表转换为具有与列表中元素相同的行数且只有一列的数据框。
例子:
ex.list <- (list(c("Tom", "Ron", "Joe"), c("Ron", "Joe"), c("Tom")))
ex.list <- lapply(ex.list, function(x) as.factor(x))
期望的输出是:
ex.list
col1
#1 Tom, Ron, Joe
#2 Ron, Joe
#3 Tom
当我打电话给str(ex.list$col1)
我想得到:
Factor w/3 levels: "Tom, Ron, Joe"
在 3 行 3 列的数据框中转换 ex.list 没有问题,但这不是我想要的。
这里最好的方法是什么?
我应该unlist 并以某种方式将向量排序到这个 3 行 1 列数据帧中吗?有没有方便的功能来做到这一点?
【问题讨论】:
-
我不明白你想要的输出。如果它只是一个包含一列的数据框,那么第一行是否应该包含
"Tom, Ron, Joe"作为字符串?因为这与它也是您想要的水平的一个因素相冲突。 -
stack(setNames(ex.list,seq_along(ex.list)))?