2017-09-08 14 views
0

einen Datenrahmen mit Urls wie diese zu haben:Überprüfen Sie, ob eine Liste von URLs existieren

df<- data.frame('urls' = c('https://www.deakin.edu.au/current-students/unitguides/UnitGuide.php?year=2015&semester=TRI-1&unit=SLE010', 
              'https://www.deakin.edu.au/current-students/unitguides/UnitGuide.php?year=2015&semester=TRI-2&unit=HMM202', 
              'https://www.deakin.edu.au/current-students/unitguides/UnitGuide.php?year=2015&semester=TRI-2&unit=SLE339')) 

ich versuche, eine Liste zu erstellen, zu überprüfen, ob jede URL vorhanden sind oder nicht. Ich versuche, einen Datenrahmen zu erzeugen, der 2 Spalten haben wird. Der erste ist die URLs und der zweite TRUE oder FALSE wenn die URL existiert oder nicht.

Ich benutze diesen Code es

library(RCurl) 
df_exist <- data.frame() 
for (i in 1:nrow(df)) { 
    url <- df$urls[i] 
    exist <- url.exists(url) 
    df_exist <- rbind(df_exist, data.frame(url = url, 
             exist = exist)) 
} 

zu machen, aber es gibt mir diese Fehlermeldung:

R Session Absorted 
R encounterd a fatal error 
The session was terminated 

Ich kann nicht verstehen, was ich mache falsch in dem Code, es zu beheben.

Antwort

2

Sieht für mich wie RCurl nicht liebt, dass Ihre URLs Faktoren sind. Ich hatte kein Problem, als ich sie in Charaktere umwandelte.

library(RCurl) 
df_exist <- data.frame() 
for (i in 1:nrow(df)) { 
    url <- as.character(df$urls[i]) 
    exist <- url.exists(url) 
    df_exist <- rbind(df_exist, data.frame(url = url, 
            exist = exist)) 

}

Auch, keine Notwendigkeit, dass für Schleife zu schreiben. Informieren Sie sich über die anwendbare Familie von Funktionen. Etwas wie sapply(df$urls, function(x) url.exists(as.character(x))) Sollte Sie das gleiche Ergebnis erhalten.

Verwandte Themen