在基于 Wikitable 的 R 数据框中拆分多行单元格并保留 'category' 列
Split multi-line cell in an Wikitable based R dataframe & keep 'category' column
我有一个格式的数据框:
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。
我愿意:
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
我试图编写一个循环或通过每一行应用于 运行,并在第 2 列中将每个“\n”替换为第 1 个值 + 一些逗号,例如“,London,”那么只拆分第二列就很容易了。我觉得这可能是一个非常不优雅的解决方案(无论如何我都不正确),我看了看 ddply 和 split
但也在那里挣扎。
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
...
我不得不说,我不太明白它是如何工作的(!)(我玩了一点)但它确实如此。
我有一个格式的数据框:
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。
我愿意: 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
我试图编写一个循环或通过每一行应用于 运行,并在第 2 列中将每个“\n”替换为第 1 个值 + 一些逗号,例如“,London,”那么只拆分第二列就很容易了。我觉得这可能是一个非常不优雅的解决方案(无论如何我都不正确),我看了看 ddply 和 split
但也在那里挣扎。
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
...
我不得不说,我不太明白它是如何工作的(!)(我玩了一点)但它确实如此。