2016-12-27 1 views
1

私はrvestパッケージを使用してURLをループし、いくつかのコンテンツをスクラブしています。以下は私のコードのサンプルです。AWSのRのlapply/map/forループに対する応答で表示されるポインタ

library(magrittr) 
library(rvest) 

bb <- function(team) { 
Sys.sleep(runif(1,2,7.75)) 
p1 <- try(read_html(paste0("http://www.basketball-reference.com/teams/",team,"/2017.html"))) 

c1 <- p1 %>% try(html_nodes("p")) %>% try(extract2(1)) %>% try(html_text(trim=TRUE)) 
c2 <- p1 %>% try(html_nodes("p")) %>% try(extract2(2)) %>% try(html_text(trim=TRUE)) 

tt <- cbind(team,c1,c2) 
return(tt) 
} 

teams <- c('BOS','CLE','GSW','HOU') 

x1 <- lapply(teams,bb) 

このコードをラップトップでローカルに実行すると、すべてうまくいきます。 AWS上に置くと、ポインタへの参照を含む出力が得られます。それは次のようになります。

ノード BOS <ポインタ:0x6e42f430> <ポインタ:0x6e42f430> ドキュメント BOS <ポインタ:0x19099140> <ポインタ:0x19099140> ノード CLE <ポインタ:0x6a149730> <ポインタ:0x6a149730> doc CLE <ポインタ:0x6a0a6900> <ポインタ:0x6a0a6900> ノード GSW <ポインタ:0x1eed3e40> <ポインタ:0x1eed3e40> DOC GSW <ポインタ:0x1e4fdc10> <ポインタ:0x1e4fdc10> ノード HOU <ポインタ:0x6a14d6e0> <ポインタ:0x6a14d6e0> doc HOU <ポインタ:0x6ca16c00> <ポインタ:0x6ca16c00>

mapまたはforループを試しても同じ結果になります。私はこれがAWS EC2インスタンスのセットアップ方法と何かと推測していますか?私はこのAMIを使用しています:http://www.louisaslett.com/RStudio_AMI/

どのように私はこれらのポインタの代わりに通常の値を得ることができますか?

答えて

1

ここでは何が起きているのかまだまだわかりませんが、上記のAMIを使用してローカルでAWSで作業していたものが見つかりました。何が起こったのか

bb <- function(team) { 
Sys.sleep(runif(1,2,7.75)) 
try(p1 <- read_html(paste0("http://www.basketball-reference.com/teams/",team,"/2017.html"))) 
try(c1 <- p1 %>% html_nodes("p") %>% html_text(trim=TRUE)) 
try(c2 <- p1 %>% html_nodes("p")) %>% html_text(trim=TRUE)) 

try(tt <- cbind(team,c1,c2)) 
return(tt) 
} 

そうは考えてますが、そのソリューションは、私の仕事:基本的にはそうのように、複数のtry機能を組み込み、機能内で使用される中間変数の周りにそれらを配置する必要はありません。 :)

関連する問題