Temat: Filtrowanie danych

Witam,
Mam następujący problem:
Chcę korzystając z poniższej bazy danych

Obrazek

utworzyć nową ale w taki sposób aby :
a) dla zmiennej yy (na zdjęcie jest widoczny tylko rok 2000) przyporządkować wartość maksymalną zmiennej t2m.(bez powtórzeń),np. dla roku 2003 mam t2m=3 itd
b) dla każdej daty mieć minimalną wart. zmiennej t2m tzn. 2000-1-1 mamy t2m -3, 2001-4-15 t2m=-18 itd w dwóch opcjach:
i) z powtórzeniami jeśli są
ii) bez powtórzeń tylko jedna wartość.

Bardzo proszę o pomoc i z góry dziękuję
Wojciech Obłąk

Wojciech Obłąk Programista, Asseco
Poland

Temat: Filtrowanie danych

Przykładowe rozwiązania jak otrzymać max t2m na każdy yy:


# example data set

dt <- data.frame(
yy = rep(c(2000:2005), each = 5),
t2m = rnorm(30)
)



# return max t2m for each yy:

# solution 1:
tapply(dt$t2m, dt$yy, max)

# solution 2:
by(dt$t2m, INDICES = dt$yy, max)

# solution 3:
aggregate(t2m ~ yy, dt, max)

# solution 4:
library(data.table)
t <- data.table(dt)
t[,.(maxT2m = max(t2m)), by = yy]

#...


by() jest fajniejsze od tapply(), bo pozwala grupować po wielu zmiennych jednocześnie...Ten post został edytowany przez Autora dnia 18.09.17 o godzinie 19:42

Temat: Filtrowanie danych

Bardzo dziękuję za pomoc. Co do 4 to nie do końca oto mi chodziło. Otóż wybierze nam max temp dla poszczególnych lat a chodziło mi o to żeby w tabelce znalazły się następujące kolumny: rok , miesiac ,maxtemp. Owszem stworzył Pan tabelke danych dodatkowo z dniem ale nie byly to wartosci powtarzajace sie dla danego roku(z powodu braku kolumny z miesiacem ).
Poniżej podaję komendę żeby mógł Pan mieć gotową baze danych tą co na zdjęciu:
dane <- readRDS(gzcon(url("http://openmeteo.pl/przetwarzanie/dane/synop.rds")))
Jeżeli to możliwę proszę o modyfikację komendy.Ten post został edytowany przez Autora dnia 18.09.17 o godzinie 23:50
Wojciech Obłąk

Wojciech Obłąk Programista, Asseco
Poland

Temat: Filtrowanie danych

Pokazałem tylko popularne funkcje do agregacji. Może Pan je łatwo zmodyfikować do swoich potrzeb. Każda z nich jest dobrze udokumentowana.
Nie napisałem rozwiązania Pana całego problemu. :)Ten post został edytowany przez Autora dnia 19.09.17 o godzinie 08:50

Następna dyskusja:

Wczytywanie danych z pliku ...




Wyślij zaproszenie do