Closed VidicL13 closed 8 years ago
V mapi uvoz
vidim zadnjo spremembo pred 18 dnevi - si morda pozabil vključiti datoteko v commit?
se mi je zdelo, da je nekaj narobe, uvoz podatko.r mi noče commitat oziroma niti stage-at. tako da prilagam kar kodo:
# če bom potreboval imena
all_dates <- dir("podatki/timestamped")
poskusni_list <- list.dirs("podatki/timestamped")
# odstranim samega sebe
poskusni_list <- poskusni_list[2:388]
# odstranim še mape, ki držijo potrebne podatke. Ostanejo le še mape clcoil in usdcad
list_brez_svoje_mape <- poskusni_list[-seq(1,length(poskusni_list),3)]
# poberem imena kar z datumom skupaj, za boljšo preglednost in identifikacijo
proba <- list.files(path = list_brez_svoje_mape, pattern = ".html", full.names = TRUE)
ime <- gsub("^.*?/(\\d{2,4}.*?)\\/.*?(\\/.*?)\\.html","^.*?/\\1\\/.*?\\2",proba)
imena <- gsub("^.*?/(\\d{2,4}.*?)\\/.*?(\\/.*?)\\.html","\\1\\2",proba)
# izbrišem še podvojene
imena <- unique(imena)
ime <- unique(ime)
# samo za timer
ptm <- proc.time()
# ustvarim data.frame velikosti 9x149 oz. 9x148, kjer je prvi stolpec namenjen
# datumu, 2:5 so namenjeni clcoil in 6:9 so namenjeni usdcad
for (i in 1:length(ime)){
y <- ifelse(gsub(ime[i], "Pravilno", proba) == "Pravilno.html", TRUE, FALSE)
y <- proba[y]
if (file.info(y[1])$size>1 & file.info(y[2])$size>1){
number_of_rows <- min(sapply(read.csv(y[1]),NROW),sapply(read.csv(y[2]),NROW))
assign("x",data.frame(read.csv(y[1])[1:number_of_rows, 1:2],
read.csv(y[1])[1:number_of_rows,4:5],
read.csv(y[1])[1:number_of_rows,3],
read.csv(y[2])[1:number_of_rows, 2]^-1,
read.csv(y[2])[1:number_of_rows, 4:5]^-1,
read.csv(y[2])[1:number_of_rows, 3]^-1))
names(x) <- c("Date", "OilOpen", "OilHigh", "OilLow",
"OilClose", "CadOpen", "CadHigh", "CadLow", "CadClose")
assign(imena[i], x)
rm(x,y)
}
else
rm(y)
}
cat(proc.time()-ptm)
Ti ne dovoli, da bi datoteko obkljukal? Sicer svetujem, da se presledkom v imenih datotek izogibaš.
Če vstavljaš kodo v issue (ali kamorkoli v Markdown), potem pred njo postavi vrstico
```R
za njo pa vrstico
Tako bo koda kot taka prikazana in ustrezno pobarvana (`R` pomeni programski jezik R - namesto tega bi lahko uporabil tudi kak drug programski jezik za ustrezno barvanje). Na GitHubu imaš tudi zavihek _Preview_, kjer si lahko ogledaš, kako bo stvar izgledala.
Tako na hitro izgleda, da vsako datoteko bereš štirikrat. Namesto, da vsakič kličeš `read.csv`, raje naredi nekaj takega:
``` R
csv1 <- read.csv(y[1])
csv2 <- read.csv(y[2])
number_of_rows <- min(nrow(csv1), nrow(csv2))
x <- data.frame(csv1[1:number_of_rows, c(1,2,4,5,3)], csv2[1:number_of_rows, c(2,4,5,3)]^-1)
Podatkov imaš sicer veliko, tako da bo v vsakem primeru branje podatkov vzelo nekaj časa.
hvala to mi je razpolovilo čas obdelave, in ko sem preimenoval datoteke, sem lahko commital.
Ustvaril sem algoritm, ki je zalo počasen in me zanima ali imate kakšen predlog za izboljšavo. uvoz/uvoz podatkov.r