列表到数据框
List to dataframe
我将 select_multiple 问题的结果存储在列表中。来自 OpenDataKit
收集的数据集
example <- list("a", c("b", "c"), c("d", "e", "f"), c(""))
在下面的记录 #4
示例中,没有任何答案(意味着所有选项都为 NA
)。
我需要从此列表创建一个数据框,其中 select 多个选项中的每个选项都将成为一个新变量。列表中的每个元素事实上 长度不同。
结果应如下所示:
variable | a b c d e f
row1 | 1 0 0 0 0 0
row2 | 0 1 1 0 0 0
row3 | 0 0 0 1 1 1
row4 | <NA> <NA><NA> <NA><NA> <NA>
我找到了 stri_list2matrix
的选项,但没有提供预期的结果。
我也试过了
df <-data.frame( lNames <- rep(names(example), lapply(example, length)),
lVal <- unlist(example))
也一样
arguments imply differing number of rows
请帮忙!
谢谢
您可以使用 setNames
、stack
和 dcast
:
example <- list("a", c("b", "c"), c("d", "e", "f"), c(""))
example <- setNames(example, seq_along(example))
ex2 <- stack(example)
ex2[ex2$values=='','values'] <- NA
library(reshape2)
dcast(ex2, ind ~ values, fun.aggregate = length)
这将导致:
ind a b c d e f NA
1 1 1 0 0 0 0 0 0
2 2 0 1 1 0 0 0 0
3 3 0 0 0 1 1 1 0
4 4 0 0 0 0 0 0 1
我将 select_multiple 问题的结果存储在列表中。来自 OpenDataKit
收集的数据集example <- list("a", c("b", "c"), c("d", "e", "f"), c(""))
在下面的记录 #4
示例中,没有任何答案(意味着所有选项都为 NA
)。
我需要从此列表创建一个数据框,其中 select 多个选项中的每个选项都将成为一个新变量。列表中的每个元素事实上 长度不同。
结果应如下所示:
variable | a b c d e f
row1 | 1 0 0 0 0 0
row2 | 0 1 1 0 0 0
row3 | 0 0 0 1 1 1
row4 | <NA> <NA><NA> <NA><NA> <NA>
我找到了 stri_list2matrix
的选项,但没有提供预期的结果。
我也试过了
df <-data.frame( lNames <- rep(names(example), lapply(example, length)),
lVal <- unlist(example))
也一样
arguments imply differing number of rows
请帮忙!
谢谢
您可以使用 setNames
、stack
和 dcast
:
example <- list("a", c("b", "c"), c("d", "e", "f"), c(""))
example <- setNames(example, seq_along(example))
ex2 <- stack(example)
ex2[ex2$values=='','values'] <- NA
library(reshape2)
dcast(ex2, ind ~ values, fun.aggregate = length)
这将导致:
ind a b c d e f NA
1 1 1 0 0 0 0 0 0
2 2 0 1 1 0 0 0 0
3 3 0 0 0 1 1 1 0
4 4 0 0 0 0 0 0 1