as.Date("2016-01-01") # konwersja na datę
as.Date("Czerwiec 2, 2015", format = "%B %d, %Y", locale = Sys.getlocale("LC_TIME"))
Sys.time() # data i czas teraz
#?strptime okazuje co dać po %
format(Sys.time(), "%a %b %d %X %Y %Z")Wykład 3
1 Przetwarzanie tekstu
tolower(LETTERS),toupper(letters)# na małe / dużetoString(letters[1:5])- jeden duży stringsubstr(daty, 1, 4)→ taki fragment tekstu na kilku linijkachtoString- wstawia przecinki pomiędzy wyświetlane elementy wektora i przekształca wiele napisów w jeden element.las = 2, zmiana wystetlania etykietycat()- wyświetla napis w sposób niesformatowany.- Napisy można łączyć za pomocą funkcji
paste() as.character(dane$nazwisko),zamienia na inny typnchar()- (długość każdego napisu).length()liczba elementów wektoraas.numeric("2016")- konwersja na liczbęsubstr(daty, 1, 4) ; substr(daty, 6, 7) ; substr(daty, 9, 10)→ fragment tekstu
2 Czas
2.1 data
2.2 ct()
czas2 <- as.POSIXct("14022015 12:56:26",
format = "%d%m%Y %H:%M:%S")
czas2[1] "2015-02-14 12:56:26 CET"
czas1 <- Sys.time()
czas1 + 7*(24*3600) # dodaje tydzień[1] "2023-11-10 18:54:48 CET"
Sys.timezone()# zwraca strefę czasową[1] "Europe/Warsaw"
2.3 lt()
czas2 <- as.POSIXlt("14022015 12:56:26",
format = "%d%m%Y %H:%M:%S"); czas2[1] "2015-02-14 12:56:26 CET"
czas2$min # można się odwoływać[1] 56
2.4 Róznice między ct() a lt()
POSIXct jest bardziej odpowiedni do prostych operacji matematycznych na czasie, takich jak obliczanie różnicy między dwiema datami, podczas gdy POSIXlt jest bardziej odpowiedni do bardziej zaawansowanych operacji na czasie, które wymagają dostępu do szczegółowych informacji o dacie i godzinie. Wybór między nimi zależy od konkretnej potrzeby i rodzaju operacji, które chcesz wykonać na danych związanych z czasem.
3 Wyszukiwanie napisów
which(dane$nazw_nap == "Kowalska")znajduje indeksywhich(dane$nazw_nap %in% c("Nowy", "Ptak"))znajduje indeksy gdzie nazwisko to Nowy lub Ptak.grep("i", dane$stanow)które linijki posiadają igrep("a", as.character(dane$nazw_nap), value = TRUE)które nazwiska posiadają agrep("^[P]", dane$nazwisko, value = T)zaczyna się od Pdane[dane$praca %in% c("AGH","NFZ"),]- wszytskie wiersze z AGH i NFZ- grepl - wartości logiczne czy sie zgadza czy nie
- grep zwraca indeksy -
auta2012$autoalarm <- grepl("autoalarm", auta2012$Wyposazenie.dodatkowe) table(auta2012$autoalarm)liczy ile aut ma autoalarm
4 Cechy jakościowe
Za pomocą cech jakościowych opisujemy przynależność danego zbioru danych do pewnej grup.
factor- zmienną jakościowąintegerlubnumeric- zmienną ilościowąsummary(auta2012$Waluta)→ ile każdej walutyprop.table(table(auta$Rodzaj.paliwa)) * 100→ % udział każdegobarplot(rok)→ słupkowy pionowybarplot(as.table(rok), horiz = T, # poziomo las = 1)
4.1 Tablice częstości
krajWaluta <- xtabs( ~ Kraj.pochodzenia + Waluta, auta2012)
4.2 Przekształcanie zmiennych ilościowych w jakościowe
dane$kateg <- cut(dane$urlop, breaks = c(0, 10, max(dane$urlop))) table(dane$kateg) # ile z jakiego porzedziału