通过一步在单元格中实例化包含列表的data.frame

时间:2016-03-18 15:11:46

标签: r dataframe

如果我这样做

data.frame(`Type` = list(c("aa", "bb")))

列表按行分布,我得到了输出:

  c..aa....bb..  
1            aa  
2            bb 

然而如果我分三步完成:

df = data.frame(`Type` = NA)
df$Type <- list(c("aa", "bb"))
df

很好:

    Type  
1 aa, bb

我还需要首先实例化`Type`。了解这些行为的链接非常受欢迎。

1 个答案:

答案 0 :(得分:4)

您可以使用I()

data.frame(Type = I(list(c("aa", "bb"))))
#     Type
# 1 aa, bb
str(.Last.value)
# 'data.frame': 1 obs. of  1 variable:
#  $ Type:List of 1
#   ..$ : chr  "aa" "bb"
#   ..- attr(*, "class")= chr "AsIs"

“dplyr”和“data.table”直接允许:

library(dplyr)
data_frame(Type = list(c("aa", "bb")))
# Source: local data frame [1 x 1]
# 
#       Type
#      (chr)
# 1 <chr[2]>


library(data.table)
data.table(Type = list(c("aa", "bb")))
#     Type
# 1: aa,bb