【问题标题】:Divide lines of a dataframe in multiple lines [duplicate]将数据帧的行分成多行[重复]
【发布时间】:2023-03-14 00:20:01
【问题描述】:

假设您有一个带有 Id x 和字符串 y 的数据框:

x  y
1  a-b-c
2  d-e

我想要以下数据框:

x  y
1  a
1  b
1  c
2  d
2  e

【问题讨论】:

标签: r dplyr stringr


【解决方案1】:

尝试使用来自tidyrseparate_rows

library(tidyr)


dff <- structure(list(x = 1:2, 
               y = structure(1:2, .Label = c("a-b-c","d-e"), 
              class = "factor")), .Names = c("x", "y"), 
              class = "data.frame", row.names = c(NA,-2L))

dff %>%
    separate_rows(y)

#  x y
#1 1 a
#2 1 b
#3 1 c
#4 2 d
#5 2 e

希望对你有帮助。

【讨论】:

    【解决方案2】:

    我们可以试试

    library(splitstackshape)
    cSplit(dff, "y", "-", "long")
    #   x y
    #1: 1 a
    #2: 1 b
    #3: 1 c
    #4: 2 d
    #5: 2 e
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 2019-11-24
      • 2023-03-15
      相关资源
      最近更新 更多