将数据框与列表类型列转换为平面数据框

时间:2017-02-22 09:25:52

标签: r list dataframe casting

我有一个数据框,其中一列是列表。我想将其转换为整个数据框:

df=data.frame(col1=c(LETTERS[1:3]),col2=c('X,Y,Z','W,V','U'))
> df
  col1  col2
1    A X,Y,Z
2    B   W,V
3    C     U
> 

并希望制作另一个数据框,以便于查看和进一步处理,例如:

> data.frame(col1=c('A','A','A','B','B','C'),col2=LETTERS[26:21])
  col1 col2
1    A    Z
2    A    Y
3    A    X
4    B    W
5    B    V
6    C    U
> 

col2中的值数在我的实际数据集中从1到5不等。目前我已经尝试了

library(stringr)
> str_split(df[,2],',')
[[1]]
[1] "X" "Y" "Z"

[[2]]
[1] "W" "V"

[[3]]
[1] "U"

> unlist(str_split(df[,2],','))
[1] "X" "Y" "Z" "W" "V" "U"

但我不知道如何继续将每个col2值与其正确的col1值链接

1 个答案:

答案 0 :(得分:0)

我们可以使用base R

执行此操作
 stack(setNames(strsplit(as.character(df$col2), ","), df$col1))