小编Dan*_*ltz的帖子

R中的地理编码批处理地址使用open mapquestapi

目标:使用R,通过open.mapquestapi获取地址向量的纬度和经度数据

出发点:由于geocode从ggmap一天开始限制为2500个查询,我需要找到一种不同的方式(我的data.frame由9M条目组成).数据科学工具包不是一种选择,因为我的大多数地址都在英国/美国之外.我在http://rpubs.com/jvoorheis/Micro_Group_Rpres上使用open.mapquestapi 找到了这个优秀的片段.

geocode_attempt <- function(address) {
    URL2 = paste("http://open.mapquestapi.com/geocoding/v1/address?key=", "Fmjtd%7Cluub2huanl%2C20%3Do5-9uzwdz", 
        "&location=", address, "&outFormat='json'", "boundingBox=24,-85,50,-125", 
        sep = "")
    # print(URL2)
    URL2 <- gsub(" ", "+", URL2)
    x = getURL(URL2)
    x1 <- fromJSON(x)
    if (length(x1$results[[1]]$locations) == 0) {
        return(NA)
    } else {
        return(c(x1$results[[1]]$locations[[1]]$displayLatLng$lat, x1$results[[1]]$locations[[1]]$displayLatLng$lng))
    }
}
geocode_attempt("1241 Kincaid St, Eugene,OR")
Run Code Online (Sandbox Code Playgroud)

我们需要这些库:

library(RCurl)
library(rjson)
library(dplyr)
Run Code Online (Sandbox Code Playgroud)

让我们创建一个包含5个地址的模拟data.frame.

id <- c(seq(1:5))
street <- c("Alexanderplatz 10", "Friedrichstr 102", "Hauptstr 42", "Bruesseler Platz 2", "Aachener Str 324")
postcode …
Run Code Online (Sandbox Code Playgroud)

google-maps geocoding r openstreetmap

11
推荐指数
2
解决办法
3059
查看次数

提高R中split()函数的性能?

我有一个非常简单的数据框架:

    X Y
    ---
    A 1
    A 2
    B 3
    C 1
    C 3
Run Code Online (Sandbox Code Playgroud)

我的最终结果应该是这样的列表:

$`A`
[1] 1 2

$`B`
[1] 3

$`C`
[1] 1 3
Run Code Online (Sandbox Code Playgroud)

对于此操作,我在R中使用split()函数:

k <- split(Y, X)
Run Code Online (Sandbox Code Playgroud)

这工作得很好.但是,如果我想在包含2200万行的数据帧上应用此代码,包括1000万个X组和387000个Y值,那么它真的很耗时.我尝试使用RRO 8.0开放版本来支持MKL.但是,仍然只使用一个内核.CPU有64 GB的RAM,所以不应该是一个问题.

有什么想法可以更聪明地计算出来吗?

statistics split r rro

3
推荐指数
1
解决办法
768
查看次数

从Rith中的github安装包时出错.dyn.load中的错误

我正在尝试使用直接的方法将github中的recommenderlabrats软件包安装到我的SUSE Linux R-Server:

devtools::install_github("sanealytics/recommenderlabrats")
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息,我无法理解.

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/ruser/R/x86_64-unknown-linux-gnu-library/3.2/recommenderlabrats/libs/recommenderlabrats.so':
  /home/ruser/R/x86_64-unknown-linux-gnu-library/3.2/recommenderlabrats/libs/recommenderlabrats.so: undefined symbol: dgels_
Error: loading failed
Execution halted
ERROR: loading failed
Run Code Online (Sandbox Code Playgroud)

我猜它归结为

undefined symbol: dgels_
Run Code Online (Sandbox Code Playgroud)

经过一些stackoverflow-和google-search之后,我认为它与Rcpp有关.我安装了0.12.0版本.我试图联系作者,但没有收到任何反馈.我在我的本地Windows机器上遇到类似的错误.

任何帮助表示赞赏.

recommendation-engine r lapack

3
推荐指数
1
解决办法
396
查看次数

用rvest刮掉选定的Drop Down项目的文本

我正在使用Rselenium和rvest来搜索一些网站.因此,我循环浏览下拉菜单中的项目以更改javascript表.下拉菜单中的表名应成为已删除表中的标识符列.我设法凑表,但刮只是一个选择的菜单项时,我坚持.以下是html代码的一些行:

<select>
<option value="5823">2010/2011</option>
<option value="7094">2011/2012</option>
<option value="9024">2012/2013</option>
<option value="11976">2013/2014</option>
<option value="15388">2014/2015</option>
<option value="18336" selected="selected">2015/2016</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如何获取所选列的html_text?css选择器:选中不起作用.我试过了:

 html_nodes("option") %>% html_attrs()
Run Code Online (Sandbox Code Playgroud)

哪个正确地给了我:

 [[1]]
 value 
"5823" 

[[2]]
 value 
"7094" 

[[3]]
 value 
"9024" 

[[4]]
  value 
"11976" 

[[5]]
  value 
"15388" 

[[6]]
  selected      value 
"selected"    "18336" 
Run Code Online (Sandbox Code Playgroud)

和

read_html(wData) %>% html_nodes("option") %>% html_text()
[1] "2010/2011" "2011/2012" "2012/2013" "2013/2014" "2014/2015" "2015/2016"
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将两者结合在一起.我只得到:

[1] "2015/2016"
Run Code Online (Sandbox Code Playgroud)

由于我正在循环选择,我需要一个通用的解决方案.谢谢.

css r web-scraping rvest

3
推荐指数
1
解决办法
1319
查看次数