【问题标题】:Un eating only specific rows in a column [duplicate]只吃一列中的特定行[重复]
【发布时间】:2019-12-03 20:20:55
【问题描述】:

我的数据集中有一列需要取消嵌套,但问题是只有某些行需要取消嵌套。

我已经为每一行分配了 ID 号,并去掉了所有的 , 和 ;如:

df %>%
  mutate(id = row_number(), Name=strsplit(Name, [ ,;]+"))

这是一个例子:

Name                                              id
John                                              1
John Macrae                                       2
Jason Thomas; Jason Tomas, Jason Timas            3
Jonothan Jamie;  Jonathan Matthew                 4

我想要的输出是

Name                                         Id
John                                         1
John Macrae                                  2
Jason Thomas                                 3
Jason Tomas                                  3
Jason Timas                                  3
Jonothan Jamie                               4
Jonathan Matthew                             4
df %>%
  mutate(id = row_number(), Name=strsplit(Name, [ ,;]+")) %>%
  unnest (cols= Name)

但不幸的是,这会取消我不想要的列中的每个值。有没有办法使用取消嵌套行中的 by 或 where 函数来选择要取消嵌套的特定行?

感谢大家的帮助!

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以从tidyr 使用separate_rows()

    separate_rows(df, Name, sep = "[;,]")
    
                    Name id
    1               John  1
    2        John Macrae  2
    3       Jason Thomas  3
    4        Jason Tomas  3
    5        Jason Timas  3
    6     Jonothan Jamie  4
    7   Jonathan Matthew  4
    

    【讨论】:

    • 神奇而简单!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 2014-12-10
    • 2020-11-09
    • 2020-07-08
    • 2020-12-01
    • 2021-06-18
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多