Piotr
Ocalewicz
Statystyka, Analiza
Danych, Data Mining,
Raportowanie
Temat: Oddzielenie danych z jednej zmiennej w R
Najprościej z datami radzić sobie za pomocą pakietu lubridate. Najpierw mówisz programowi że ma traktować przekazany przez Ciebie ciąg znaków jako datę i godzinę a potem wyciągasz samą godzinę:
library(lubridate)
data <- dmy_hms("1/1/2010 12:12:12")
hour(data)
Wynikem tego kodu będzie liczba 12. Oczywiście za parametr funkcji dmy_hms podstawiasz nazwę zmiennej zawierającej datę. Więcej przydatnych informacji znajdziesz na stronie https://github.com/tidyverse/lubridate
EDIT
Pomyślałem, że może jednak jako godzinę rozumiesz wszystko oprócz daty, tj. godziny, minuty i sekundy. Wtedy możesz odpalić pakiet stringr i skorzystać z funkcji word:
library(stringr)
word("1/1/2010 12:12:12", start = 2)
Wynikiem będzie ciąg znaków "12:12:12", który potem możesz zamienić na czas. Generalnie sposobów rozwiązania tego zadania jest co najmniej kilka, Ten post został edytowany przez Autora dnia 03.06.17 o godzinie 20:14
Acg N. .
Temat: Oddzielenie danych z jednej zmiennej w R
Używając "czystego" R:> strftime("2011-01-02 10:22:33")
[1] "2011-01-02 10:22:33"
> strftime("2011-01-02 10:22:33", format="%H")
[1] "10"
> strftime("2011-01-02 14:22:33", format="%H")
[1] "14"
> strftime("2032/12/22 01:22:33", format="%H")
[1] "01"
Temat: Oddzielenie danych z jednej zmiennej w R
Dziękuje za odpowiedzi ale nie do końca chodziło mi o wywołanie tego z jednej linii. Otóż moje dane mają pareset tysięcy wierszy i potrzebuje z każdego z nich wyciągnąć właśnie tą godzinę( w sensie HH:MM:SS). Ogólnie zadanie polega na policzeniu przypadków z całego miesiąca w danych godzinach i pomyslalem ze wpierw usunięcie daty będzie najlepszym posunięciem gdyż ona jest dla mnie zupełnie niepotrzebna.
Piotr
Ocalewicz
Statystyka, Analiza
Danych, Data Mining,
Raportowanie
Temat: Oddzielenie danych z jednej zmiennej w R
Ale my nie piszemy, żebyś każdą datę pakował pojedynczo do funkcji ;) Przynajmniej tak zrozumiałem twoje ostatnie pytanie. Przyjmijmy dla uproszczenia, że masz tabelę o nazwie x, w której są dwie kolumny: "numer" oraz "data". Kiedy wywołasz następujący kod:
x <- data.frame(numer = c(1:3), data = c("2011-01-02 10:22:33","2011-01-02 11:00:22","2011-01-02 12:15:01"))
head(x)
numer data
1 1 2011-01-02 10:22:33
2 2 2011-01-02 11:00:22
3 3 2011-01-02 12:15:01
strftime(x$data, format = "%H")
[1] '10' '11' '12'
to otrzymasz wektor zawierający godzinę dla wszystkich wierszy w tabeli. R pracuje na wektorach, więc nie musisz w tym przypadku używać np. pętli for lub czegoś podobnego.Ten post został edytowany przez Autora dnia 05.06.17 o godzinie 13:05
Podobne tematy
-
R » Wczytywanie danych z pliku w kolumnach do wektora -
-
R » Wyciąganie danych z gumtree -
-
R » Porządkowanie zmiennej typu factor -
-
R » Filtrowanie danych -
-
R » H2O - ładowanie danych -
-
R » Uniwersytet Warszawski - projekt szkoleniowy z analizy... -
-
R » Problem z eksportem danych do .csv -
-
R » Maraton analizy danych #2 eRka i Onet.pl - wstępnie -
-
R » Zaczytywanie danych w formacie *.csv z GitHub do R -
-
R » Tableau&R Analiza i Wizualizacja danych- korzysta ktoś? -
Następna dyskusja: