网页文本的R和readLines
我想从以下网站创建一个数据帧: 不幸的是,我不知道如何使用似乎是制表符分隔符的内容来创建数据列。我下面的代码采用并创建了多个字符串,但我很难确定如何将包含多个单词的名称分隔为一列,就像网站上显示的那样网页文本的R和readLines,r,readlines,R,Readlines,我想从以下网站创建一个数据帧: 不幸的是,我不知道如何使用似乎是制表符分隔符的内容来创建数据列。我下面的代码采用并创建了多个字符串,但我很难确定如何将包含多个单词的名称分隔为一列,就像网站上显示的那样 library(XML) url<-"http://www.arrs.net/MaraList/ML_2014.htm" data<-readLines(url) data<-sub("</FONT></b><FONT SIZE=\"2\" <
library(XML)
url<-"http://www.arrs.net/MaraList/ML_2014.htm"
data<-readLines(url)
data<-sub("</FONT></b><FONT SIZE=\"2\" <FONT COLOR=\"#00000\" FACE=\"Courier New, Courier\">","",data)
data<-sub("<B><FONT COLOR=\"#0066FF\" FACE=\"Arial\">","",data)
data<-read.table(textConnection(data),stringsAsFactors=FALSE)
data<-data[11:40000,1]
库(XML)
url这里有一种方法来阅读本文(使用我维护的两个包和很棒的stacksplitshape
包)。您将需要开发版本的qdapTools
devtools::install_github("trinker/qdapTools")
library(qdapTools); library(qdapRegex); library(splitstackshape)
url<-"http://www.arrs.net/MaraList/ML_2014.htm"
m <- readLines(url)[-c(1:7, 2760:2767)]
## Split into lists by country
x <- loc_split(m, unique(grep("<B><FONT", m)))
## Clean up country names
nms <- rm_angle(sapply(x, `[`, 1))
## remove html country name from data can convert to a data.frame
dat <- list2df(setNames(lapply(x, `[`, -1), nms), "dats", "Country")[, 2:1]
## Use hand parsing technique to locate widths
## I added a # before each column in row one of data
## gregexpr tells us the location of the # characters
det <- "AAR #26#Jan #King George Island # #27+25 #White Continent #4:03:30 #Steve Hibbs (USA) #4:13:02 #Suzy Seeley (54,TX/USA) "
widths <- gregexpr("#", det)[[1]]
## replace those widths with # character as it is not any where else in data set
for (i in widths){
substring(dat[["dats"]], i, i) <- "#"
}
## split columns on # character
out <- cSplit(dat, 2, sep="#")
out
devtools::install\u github(“trinker/qdapTools”)
图书馆(QDAP工具);图书馆(qdapRegex);库(splitstackshape)
如果数据看起来没有分隔符,那么它看起来是固定宽度的。使用read.fwf
可能会更好,但你必须自己确定分栏。完全同意@MrFlick,你可以只提取未标记的行:mara可以理解,谢谢@MrFlick和hrbrmstrdevtools(“trinker/qdapTools”)
?谢谢@tylerinker,我不熟悉这些工具,所以我会看一看。@DirtyFilthyTerribleRaptor-我没有太多时间,而且有一段时间没有更新devtools-可能有一个更新添加了“devtools”功能,但我也没有看到您加载devtools,所以我不确定发生了什么。