创建一个data.frame,其列将在每行中保存一个列表

nic*_*las 3 r

我无法使用由一组字符组成的列创建数据框.

是不是可能/我应该坚持列表?

>subsets <- c(list("a","d","e"),list("a","b","c","e"))
customerids <- c(1,1)
transactions <- data.frame(customerid = customerids,subset =subsets)
> str(transactions)
'data.frame':   2 obs. of  8 variables:
 $ customerid  : num  1 1
 $ subset..a.  : Factor w/ 1 level "a": 1 1
 $ subset..d.  : Factor w/ 1 level "d": 1 1
 $ subset..e.  : Factor w/ 1 level "e": 1 1
 $ subset..a..1: Factor w/ 1 level "a": 1 1
 $ subset..b.  : Factor w/ 1 level "b": 1 1
 $ subset..c.  : Factor w/ 1 level "c": 1 1
 $ subset..e..1: Factor w/ 1 level "e": 1 1
Run Code Online (Sandbox Code Playgroud)

Aru*_*run 5

我觉得你subsets错了.如果它实际上是这样的:

subsets <- list(c("a", "d", "e"), c("a", "b", "c", "e"))
# [[1]]
# [1] "a" "d" "e"

# [[2]]
# [1] "a" "b" "c" "e"
Run Code Online (Sandbox Code Playgroud)

而且customeridsc(1,1),那么你可以有subsets作为的列清单data.frame为行总数仍然会是相同的.你可以这样做:

DF <- data.frame(id = customerids, value = I(subsets))
#   id      value
# 1  1    a, d, e
# 2  1 a, b, c, e

sapply(DF, class)
#        id     value 
# "numeric"    "AsIs" 
Run Code Online (Sandbox Code Playgroud)

现在,您可以像访问一样访问DF$value和执行操作list.