HTML表主体比表标题中定义的列多1列。这将导致跳过最后一列,当然也会导致列错。如何将额外的列添加到R中的结果data.framework/ table中,同时使用package("htmltab")
读取HTML显然,后置处理没有帮助。
码
install.packages("htmltab")
library(htmltab)
bu<- 0
bu <- data.table("Pl.", "Mannschaft", "Kurzname" , "Spiele", "G.", "U.", "V.", "Tore", "Diff.", "Pkt.")
#https://www.bundesliga-prognose.de/1/2009/1/
url <- "https://www.bundesliga-prognose.de/1/2009/1/"
bu <- htmltab(doc = url, column=10,columnnames=c ("Pl." , "Mannschaft", "Kurzname" , "Spiele", "G.", "U.", "V.", "Tore", "Diff.", "Pkt."), which = "//th[text() = 'Pl.']/ancestor::table")
bu <- data.table(bu)
head(bu)
--这导致了
Pl. Mannschaft Spiele G. U. V. Tore Diff. Pkt.
1: 1. VfL Wolfsburg Wolfsburg 1 1 0 0 2:0 2
2: 2. Eintracht Frankfurt E. Frankfurt 1 1 0 0 3:2 1
3: 3. FC Schalke 04 FC Schalke 04 1 1 0 0 2:1 1
4: 4. Borussia Dortmund B. Dortmund 1 1 0 0 1:0 1
5: NA Hertha BSC Berlin H. BSC Berlin 1 1 0 0 1:0 1
6: 6. Bor. Mönchengladbach M´gladbach 1 0 1 0 3:3 0
由于没有在标题中指定short-name("Kurzname"),所以在游戏(Spiele
)列a等等中显示短名("Kurzname")。所以跳过了最后一列。如何在使用("Kurzname")包读取标头时添加额外的列短名htmltab
?另外,我想用行id/ NA
包替换第5行中的htmltab
?
发布于 2017-03-21 06:29:52
在这种帮助下,我找到了一个非常简单的解决方案:
发布于 2017-02-28 06:33:20
这似乎确实是htmltab的一个问题。我找到的唯一解决方案是直接读取表的tbody
。然后,您需要手动添加标头。
htmltab(doc = url, which = "//table[2]/tbody")
https://stackoverflow.com/questions/42508377
复制相似问题