R web-scraping删除不必要的行

时间:2014-01-07 19:11:00

标签: r

我正在试图通过重复标题标题间歇性地中断表格: 日期LME锡现金结算LME锡3个月LME锡库存

我可以生成包含数据的列表

library(XML)
tableSN <-readHTMLTable("http://www.westmetall.com/en/markdaten.php?     action=show_table&field=LME_Sn_cash",stringsAsFactors = FALSE)
tableSN


class(tableSN)

但是如何摆脱重复的标题标题以生成一个干净的数据表,只显示日期和数字列

我如何转换数字(例如21.720,00至21,720.00)及日期(例如2013年12月30日至2013年12月30日)

2 个答案:

答案 0 :(得分:2)

你得到一个列表,你可以将它转换为data.frame,如下所示:

dd = do.call(rbind,tableSN)
dd = dd[-grep('date',dd$date),]

答案 1 :(得分:2)

使用@ agstudy的答案的data.frame对象dd,你可以做到

for(i in 2:4) {
  dd[,i] <- gsub("\\.", "", dd[,i])
  dd[,i] <- gsub(",", ".", dd[,i])
  dd[,i] <- as.numeric(dd[,i])
}

lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C")
dd[,1] <- gsub("Febuary", "February", dd[,1])
dd[,1] <- as.Date(strptime(dd[,1], "%d. %B %Y"))
Sys.setlocale("LC_TIME", lct)
str(dd)

应该转换数字和日期。