我想从网页上阅读下表,然后创建一个条形图。
语言............工作
PHP .................... 12,664
Java ................... 12,558
目标C ......... 8,925
SQL .................... 5,165
Android(Java).... 4,981
Ruby ................... 3,859
JavaScript ........... 3,742
C#....................... 3,549
C ++ ..................... 1,908
ActionScript ......... 1,821
Python ................. 1,649
C .......................... 1,087
ASP.NET ............... 818
我的问题:
1.我的酒吧弄乱的问题,每个酒吧确实对应正确的语言 以下是我的代码:
library(XML)
tables2 <-(readHTMLTable("http://www.sitepoint.com/best-programming-language-of-2013/",which=1))
barplot(as.numeric(tables2$Job),names.arg=tables2$Language)
readHTMLTable
以什么格式保存数据?它是矩阵,数据框架还是其他格式? 答案 0 :(得分:1)
这里的主要问题是Jobs
被视为factor
。由于该字段中的逗号,您无法进行直接数字转换。您可以通过str()
找出您的对象在R中的“格式”。这里str(tables2)
给出了:
'data.frame': 13 obs. of 2 variables:
$ Language: Factor w/ 13 levels "ActionScript",..: 10 7 9 13 2 12 8 5 6 1 ...
$ Jobs : Factor w/ 13 levels "1,087","1,649",..: 6 5 12 11 10 9 8 7 4 3 ...
因此,您可以看到Jobs
是一个因素,而tables2
是data.frame
。要将其转换为数字,您需要删除逗号。您可以使用gsub()
。
tables2$Jobs <- as.numeric(gsub(",","",tables2$Jobs))
否str(tables2)
给出:
'data.frame': 13 obs. of 2 variables:
$ Language: Factor w/ 13 levels "ActionScript",..: 10 7 9 13 2 12 8 5 6 1 ...
$ Jobs : num 12664 12558 8925 5165 4981 ...
当你做你的情节时,一切都应该很好:
barplot(tables2$Jobs,names.arg=tables2$Language)