Benutzer Diskussion:ElTres/R-code
aus Wikipedia, der freien Enzyklopädie
Achtung, bitte Quelltext benutzen, da eckige Doppelklammern wegen Wikisyntax falsch dargestellt werden.
library(XML) library(stringr) # Read and parse HTML file parteien<-c("CDU/CSU","SPD","LINKE","GRÜNE","FDP","AfD","PIRATEN","FW") #keineparteien<-c("PIRATEN","FW") keineparteien<-NULL inst<-data.frame("url"=c("http://seitemitumfragen/institutA","http://seitemitumfragen/institutB)"), kurz=c("A","B")) scrap<-function(inst,parteien,keineparteien) { data = readHTMLTable(as.character(inst$url))2 data = as.matrix(data) dat<-data[,1] dat<-sub(".","/",dat,fixed=TRUE) dat<-sub(".","/",dat,fixed=TRUE) dat<-as.Date(dat,"%d/%m/%Y") data<-data[dat>as.Date("21/09/2013","%d/%m/%Y"),] results<-data.frame(datum=dat[dat>as.Date("21/09/2013","%d/%m/%Y")], inst=inst$kurz) n=dim(data)[1] for (p in parteien) { w=which(p==colnames(data)) if (length(w)==0)resultsp<-rep(0,n) else {resultsp<-as.numeric(sub(" %","",sub(",",".",data[,w])))} } results$Sonstige<-rep(0,n) for (p in keineparteien) { w=which(p==colnames(data)) x=as.numeric(sub(" %","",sub(",",".",data[,w]))) x[is.na(x)]=0 if (length(x)!=0)results"Sonstige"<-results"Sonstige"+x } txt=data[,which(colnames(data)=="Sonstige")] for (j in 1:n) { txt1=strsplit(as.character(txt[j])," %") for (k in length(txt1)) { txt0<-txt11[k] for (p in parteien) { if (substr(txt0,1,str_length(p))==p) { txt02=substr(txt0,str_length(p)+2,1000) resultsp[j]=as.numeric(sub(" %","",sub(",",".",txt02))) } } for (p in keineparteien) { if (substr(txt0,1,str_length(p))==p) { txt02=substr(txt0,str_length(p)+2,1000) results"Sonstige"[j]=results"Sonstige"[j]+as.numeric(sub(" %","",sub(",",".",txt02))) } } if (substr(txt0,1,6)=="Sonst.") { txt0=substr(txt0,8,1000) results"Sonstige"=results"Sonstige"[j]+as.numeric(sub(" %","",sub(",",".",txt02))) } } } return(results) } n=dim(institute)[1] results=scrap(institute[1,],parteien,keineparteien) for (i in 2:n)results=rbind(results,scrap(institute[i,],parteien,keineparteien))