【问题标题】:Split a string in each row and duplicate that row [duplicate]在每一行中拆分一个字符串并复制该行[重复]
【发布时间】:2015-10-31 00:54:46
【问题描述】:

在我正在处理的数据框中,有一列可能包含“;”的字符串。我想找到它们并拆分由“;”分隔的字符串并复制该行并将分隔的字符串放入不同的行中。

这是数据框的示例:

name     value
a        10
b;c      20
d        30
e        40
f;g;h    50

这就是我想要的:

name     value
a        10
b        20
c        20
d        30
e        40
f        50
g        50
h        50

这是我想写的:

  DF$name <- sapply(DF$name,function(x) {
     if (grepl(";",DF$name)){
     unlist(strsplit(DF$name,"[;]"))}})

错误消息说:

  the condition has length > 1 and only the first element will be used

我也不知道如何将拆分字符串放入不同的行

【问题讨论】:

    标签: r


    【解决方案1】:
    library(dplyr)
    library(tidyr)
    df%>%mutate(name=strsplit(as.character(name),';'))%>%unnest(name)
      name value
    1    a    10
    2    b    20
    3    c    20
    4    d    30
    5    e    40
    6    f    50
    7    g    50
    8    h    50
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 2018-03-15
      • 2011-04-28
      • 2016-11-07
      相关资源
      最近更新 更多