Statystyka, prognozowanie, ekonometria, data mining Strona Główna
Reklama pqstat.pl
Statystyka, prognozowanie, ekonometria, data mining
Forum miłośników statystyki - Portal Statystyczny

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  Chat   Regulamin  Kadra forum
PORTAL STATYSTYCZNY
 Ogłoszenie 
FORUM STATYSTYCZNE MA JUŻ 10 LAT

Znasz statystykę lub ekonometrię, metody prognozowania, data mining i chcesz pomóc w rozwoju forum statystycznego ?
Pisz na: administrator(małpa)statystycy.pl

Rozpoczął swoją działalność portal statystyczny - masz pomysł na jego rozwój ?

Drogi forumowiczu! Zanim napiszesz posta zapoznaj się z regulaminem forum i przedstaw się
The International Year of Statistics (Statistics2013) Smarter Poland Portal statystyczny

Poprzedni temat «» Następny temat

Tagi tematu: Brak tagów.

zapętlone generowanie wykresów i zapis do wielu plików
Autor Wiadomość
kajtek 
Szeregowy


Posty: 3
Skąd: Gdańsk
Wysłany: 2016-06-10, 06:42   zapętlone generowanie wykresów i zapis do wielu plików

Może ktoś z Was podpowie mi, gdzie robię błąd.

Mam dość dużą bazę danych z badań sondażowych 130 zmiennych, 1500 respondentów.
Do blisko 100 zmiennych muszę wygenerować identyczne wykresy słupkowe (przegląd częstości w %). Do tego celu wykorzystuję pętlę for. Ze względu na zmienne filtrujące, poszczególne wykresy tworzę w seriach/paczkach.

Kod:
#wybór zmiennych do danej paczki
dane <- select(baza,v1,v2,v3,v4,v5,v6,v7)

#pętla
for (i in dane) {
     hist(i) #prosty wykres, żeby tu nie komplikować kodu
}


Wszystko działa, bo to w sumie prosta operacja, ale natrafiam na problem, kiedy chciałbym, aby utworzone wykresy wylądowały w określonym katalogu, każdy jako osobny plik, np. jpg.

Skorzystałem z tego artykułu, ale niestety - po adaptacji - nie działa. W katalogu pojawia się tylko jeden wykres.

Pełny kod wygląda następująco:

Kod:
dane <- select(baza,v1,v2,v3,v4,v5,v6,v7)
zmienne <- names(dane)

for (i in dane) {
  adres <- file.path("D:","wykresy", paste("wykres_", zmienne[i], ".jpg", sep = ""))
  jpeg(filename = adres)
    hist(i)
  dev.off()
}


Przyznam, że nie potrafię zidentyfikować błędu, który popełniam, a chciałbym uniknąć przeprowadzania "z ręki" blisko stu operacji "zapisz".

A może jest inny sposób?

Z pozdrowieniami,
Kajtek.
Ostatnio zmieniony przez kajtek 2016-06-10, 06:45, w całości zmieniany 1 raz  
 
     
Google

Wysłany:    Reklama google.

 
 
mikos 
Podporucznik


Pomógł: 46 razy
Posty: 169
Skąd: Kutno
Wysłany: 2016-06-10, 11:46   

Na początku ustaw sobie ścieżkę do folderu w którym chcesz mieć wykresy:
Kod:
setwd(".....")


Przykładowe dane:
Kod:

dane <- data.frame(baza=rnorm(100),v1=rnorm(100),v2=rnorm(100),v3=rnorm(100))
zmienne <- names(dane)
N <- ncol(dane)


Teraz pętla:
Kod:

for(i in 1:N) {
 mypath <- file.path(paste("myplot_", zmienne[i], ".pdf", sep = ""))
 pdf(file=mypath)
    mytitle = paste("Histogram dla zmiennej:", zmienne[i])
    myxlab = paste(zmienne[i])
    hist(dane[,i], main = mytitle, xlab = myxlab)
 dev.off()
}
 
     
kajtek 
Szeregowy


Posty: 3
Skąd: Gdańsk
Wysłany: 2016-06-10, 16:57   

Bardzo dziękuję za odpowiedź, ale niestety nie pomogło.

Co do oczywistości, to setwd() jasna sprawa.

Podaję link do fragmentu bazy danych na DB.

Pętla for działa znakomicie, w rstudio wykresy dla każdej ze zmiennych malują się aż miło.

Do wykresów używam pakietu sjPlot, polecenia sjp.frq(), ale błędy, na które natrafiam powtarzają się i przy zwykłym surowym hist(). Nie jest to problem malunków, ale eksportu do .jpg lub .png.

Kod:
for (i in wybrane){
  sjp.frq(i)
  }


Gdzieś tkwi usterka, której nie widzę, bo na zestawie danych iris - wszystko śmiga.

Ten mój kod też:

Kod:

zmienne <- names(data)

for (i in data){
  jpeg(paste("myplot_", zmienne[i], ".jpg", sep = ""))
    sjp.frq(i)
  dev.off()
}


Po wykonaniu kodu dostaję 5 wykresów: myplot_NA, myplot_v4, myplot_v5. Ale najśmeszniejsze jest to, że kiedy przy pomocy pętli wykonam polecenie "malujące", to mam 5 wykresów, takich jak trzeba. Co jest z tym auto-eksportem? Jakoś inaczej odpytuje dane?
 
     
mikos 
Podporucznik


Pomógł: 46 razy
Posty: 169
Skąd: Kutno
Wysłany: 2016-06-10, 19:39   

U mnie poniższy kod działa - generuje serię histogramów - pliki .png
Kod:
dane <- read.csv("data.csv",h=T,sep=";")
zmienne <- names(dane)
N <- ncol(dane)

for(i in 1:N) {
 mypath <- file.path(paste("myplot_", zmienne[i], ".png", sep = ""))
 png(file=mypath)
    sjp.frq(dane[,i], type = "hist", show.mean = TRUE)
 dev.off()
}
 
     
statnowy 
Starszy Szeregowy


Posty: 29
Skąd: Rzeszów
Wysłany: 2016-06-15, 06:55   

Trochę obok tematu więc z góry przepraszam, ale problem dotyczy podobnego problemu - jak zapisywać z pętli wyniki poszczególnych iteracji:

W jaki sposób zapisać wygenerowane w pętli macierze

W jednej pętli napisałem polecenie do generowania (obliczenia) pewnej macierzy i chciałbym ją zapisać (może być w csv)

Problem w tym, że takich macierzy muszę obliczyć i zapisać dużo a na chwilę obecną macierz się nadpisuje i mam tylko jedną - tą ostatnią

Ewentualnie proszę o podanie kodu aby w R po wykonaniu jednej iteracji tworzyła się zmienna mac1 (pierwsza macierz) a po wykonaniu drugiej iteracji zmienna mac2 (druga macierz)
Chyba, że jest inny sposób.

Pozdrawiam
_________________
Język R jest cool
 
     
mikos 
Podporucznik


Pomógł: 46 razy
Posty: 169
Skąd: Kutno
Wysłany: 2016-06-15, 08:15   

Może coś takiego:
Kod:
set.seed(4026)
M <- matrix(sample(1:100,16,F),4,4)
set.seed(2305)
z <- matrix(sample(1:100,80,F),20,4)
N <- nrow(z)

Kod:
mac <- lapply(1:N,function(i) M*z[i,])

Wybrana macierz:
Kod:
mac[[1]]
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych zakładek(IE)
Wersja do druku

Skocz do:  

Podobne Tematy
Temat Autor Forum Odpowiedzi Ostatni post
Brak nowych postów Przyklejony: [R] Łączenie kilku plików txt (sqldf)
Pietrucha Biblioteki R, Pakiety R 4 2010-10-13, 12:02
Adii_
Brak nowych postów Przyklejony: Test dla wielu wskaźników struktury
Test F
br34k Testowanie hipotez statystycznych 23 2013-05-23, 12:46
Shidley
Brak nowych postów Przyklejony: test dla wielu współczynników korelacji
nyparyzo Testowanie hipotez statystycznych 10 2011-12-28, 16:38
basia_w
Brak nowych postów Przyklejony: Generowanie rozkładu normalnego 2D
stockfish Teoria i rachunek prawdopodobieństwa 5 2010-01-18, 18:22
MK
Brak nowych postów Przyklejony: Generowanie liczb o rozkladzie wykładniczym
s314ryt Testowanie hipotez statystycznych 2 2008-05-18, 23:01
s314ryt

Ideą przyświecającą istnieniu forum statystycznego jest stworzenie możliwości wymiany informacji, poglądów i doświadczeń osób związanych ze statystyką, mierzenie się z różnego rodzaju problemami statystycznymi i aktuarialnymi. Poruszane problemy: Statystyka w badaniach sondażowych rynku, metody reprezentacyjne, Teoria i rachunek prawdopodobieństwa, statystyka opisowa, teoria estymacji, testowanie hipotez statystycznych, ekonometria, prognozowanie, metody data mining.
Copyright (C) 2006-2015 Statystycy.pl
Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,07 sekundy. Zapytań do SQL: 18