【发布时间】:2014-08-27 14:15:34
【问题描述】:
我正在使用 R 从网站中提取 HTML 表格。 但是,HTML 表格的语言是印地语,文本显示为 unicode。 我可以设置/安装字体系列并获取实际文本而不是 unicode 的任何方式。
我遵循的代码是:
library('XML')
table<-readHTMLTable(<the html file>)
n.rows <- unlist(lapply(table, function(t) dim(t)[1]))
table[[which.max(n.rows)]]
输出如下: “” 等等
注意:由于某种原因,readHTMLTable 仅在我删除 HTML 文件中的前两个不需要的表时才有效。因此,如果您必须使用文件进行测试,请编辑掉前两个表或直接从文件中删除前两个表头。
任何帮助将不胜感激。谢谢
更新:
这个问题似乎与在 Windows 操作系统机器上的 R 中设置的语言环境有关。无法弄清楚如何让它工作!
【问题讨论】:
-
您使用的是哪个版本的 R/OS?我无法重现您的问题(Fedora Core 18 上的 R 3.0.2,XML 包 3.98-1.1)。我可以使用
readHTMLTable,而无需从HTML 中编辑出任何内容,并且我在readHTMLTable的输出中看到了印地语字符。您的语言环境设置为(运行sessionInfo或Sys.getlocale())? -
@nico .. 这些是我的系统规格... R 版本 3.0.2 (2013-09-25) 平台:x86_64-w64-mingw32/x64 (64-bit) - windows 8 语言环境:[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C [5] LC_TIME=English_United States.1252 其他附加包:[1] XML_3.98-1.1
-
@nico 所以我想这可能与语言环境设置有关?你能告诉我你设置了什么吗?
-
我已将其设置为
"LC_CTYPE=en_GB.utf8;LC_NUMERIC=C;LC_TIME=en_GB.utf8;LC_COLLATE=en_GB.utf8;LC_MONETARY=en_GB.utf8;LC_MESSAGES=en_GB.utf8;LC_PAPER=en_GB.utf8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_GB.utf8;LC_IDENTIFICATION=C"。我猜 UTF-8 是造成差异的原因。试试:Sys.setlocale("LC_ALL", 'en_US.UTF-8') -
好吧,我对语言环境的了解还不够,恐怕无法帮助您解决这个问题,但至少您对问题所在有一些线索!
标签: r data-processing