首页 > 解决方案 > 根据单元格中的值数量在 R 中重塑数据框

问题描述

我希望从以下位置转换 R 中的数据框df

col1   col2
X1     A;B
X2     B
X3     C;D
X4     D

进入:

col1   col2
X1     A
X1     B
X2     B
X3     C
X3     D
X4     D

我想出了一个我放错地方的复杂解决方案,并且认为必须有一种更简单的方法来做到这一点。感谢您的任何指示。

标签: rdataframe

解决方案


library(tidytext)
unnest_tokens(dat,col2,col2,to_lower=F)
    col1 col2
1     X1    A
1.1   X1    B
2     X2    B
3     X3    C
3.1   X3    D
4     X4    D

不使用包:在基础 R 中,您可以执行以下操作:

stack(setNames(strsplit(dat$col2,";"),dat$col1))
  values ind
1      A  X1
2      B  X1
3      B  X2
4      C  X3
5      D  X3
6      D  X4

您可以根据需要排列列


推荐阅读