【问题标题】:Split multi-line cell in an Wikitable based R dataframe & keep 'category' column在基于 Wikitable 的 R 数据框中拆分多行单元格并保留“类别”列
【发布时间】:2015-01-30 09:01:12
【问题描述】:

我有一个格式如下的数据框:

Location       Date
         1 - 10/10/2015
         2 - 11/10/2015 
Place    3 - 12/10/2015
         5 - 12/10/2015
NxtPlace 4 - 12/10/2015

...

第二列有很多包含(事件的)日期的多行行,第一列有它们的位置,nrow 等于位置的 n 个,而不是事件日期的 n 个。

我想: 1. 每个事件有一行 2.重复每个匹配日期旁边的位置

实际的数据集就像您使用以下代码阅读的数据集,并且(我认为)是一种相当常见的格式,尤其是在 Wiki 表中:

library(XML)
WikiMeets <- readHTMLTable(doc="http://meta.wikimedia.org/wiki/Meetup/UK/Footer_list")
WikiMeets <- as.character(WikiMeets[[1]]) #it'll save as factor otherwise

我试图只写一个循环或申请运行每一行,并在第二列中 gsub 每个“\n”作为第一列的值 + 一些逗号,例如“,London”,那么只需拆分第二列就很容易了。我觉得这可能是一个非常不优雅的解决方案(无论如何我都没有做对),我查看了 ddply 和 split 但也在那里挣扎。

【问题讨论】:

    标签: r dataframe plyr multiline


    【解决方案1】:
    library(plyr)
    library(stringr)
    NewData <- ddply(messy_table, .(Location), 
      function(x) data.frame(WDate=str_split(x$Date, "\n")[[1]]))
    

    这为数据提供了正确的形式:

    Location       WDate
    Place    1 - 10/10/2015
    Place    2 - 11/10/2015 
    Place    3 - 12/10/2015
    NxtPlace 5 - 12/10/2015
    NxtPlace 4 - 12/10/2015
    

    ...

    我不得不说,我不太明白它是如何工作的(!)(我玩了一下),但确实如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      相关资源
      最近更新 更多