How to 'unlist' a column in a data.table

后端 未结 2 599
名媛妹妹
名媛妹妹 2021-01-04 07:19

in my table, some cells are vectors instead of single value, i.e. the column is a list instead of vector:

dt1 <- data.table(
  colA=   c(\'A1\',\'A2\',\'A         


        
2条回答
  •  无人及你
    2021-01-04 07:33

    I think @Jaap's is easiest, but here's another alternative to chew over:

    #create ID column
    dt1[ , ID := .I]
    
    #unnest colB, keep ID column
    dt_unnest = dt1[ , .(ID = rep(ID, lengths(colB)),
                         colB = unlist(colB))]
    #merge
    dt_unnest = dt_unnest[dt1[ , !'colB'], on = 'ID']
    #    ID colB colA colC colD
    # 1:  1   B1   A1   C1   D1
    # 2:  2  B2a   A2   C2   D2
    # 3:  2  B2b   A2   C2   D2
    # 4:  3   B3   A3   C3   D3
    

提交回复
热议问题