使用R中的dataframe列内的向量

时间:2017-03-15 08:42:29

标签: r vector dataframe elements

我正在编写一个R中的分类器,我有一些可以有多个类的情况,所以我希望将两个类放在同一行,并将列作为一个向量的类。我的意思是,列的内容是$ classes,data.frame应该像Java或Python列表一样。以下是输入data.frame数据的示例:

Case    class    class1     class2
  A       X                    Z
  B                 Y
  C       X         Y          Z
  D                 Y          Z

我真正需要做的是将class,class1和class2作为一个名为classes的列,使用vector作为元素,这是我想要的data.frame:

Case    classes  
A       [X, Z] %<- This is a vector, not an string      
B       [Y]          
C       [X, Y, Z]
D       [Y, Z]

有没有办法拥有这个data.frame结构?如果是这样,如何完成以及如何访问每个类向量中的单个元素?

提前致谢

1 个答案:

答案 0 :(得分:1)

我们可以使用data.table

library(data.table)
setDT(df1)[, {v1 <- unlist(.SD); list(classes = list(v1[v1!='']))}, Case]