Как сделать данные графика с помощью даты гг / мм / дд чч: мм: сс? - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть набор данных, которые должны быть нанесены с помощью R. Мне нужно сделать точечную графику со значением в качестве оси y и датой со временем в виде y. Но сначала я хочу построить график за одну дату (например, 2018.10.29 10:10:12 - 2018.10.29 23:59:01), а затем примерно за одну неделю, а затем за один месяц и т. Д. У меня тоже есть фрейм данных и файл .csv как мой источник данных. У меня есть 2 формата даты на моих данных, и, возможно, я должен изменить это, чтобы формат даты был в одном формате. Не могли бы вы мне помочь? Я новичок в R, и я пытаюсь научиться этому. Спасибо за вашу помощь.

Ниже приведен краткий пример данных:

ID  Date    Location    CO2 Temp    Hum Light   Soil    Soil2                                                   
1   10/29/2018 12:11    EE_agri8    557.8357    23.90000    45.00000    41.0000 99.55399    99.67636    
2   10/29/2018 12:12    EE_agri8    557.8357    23.90000    45.50000    41.0000 99.55399    99.67636    
3   10/29/2018 12:11    EE_agri8    557.8357    25.84484    70.24592    508.5654    99.55399    99.67636    
4   2018-10-29 12:13:16 EE_agri8    557.8357    25.84484    70.24592    508.5654    73.07000    99.67636    
5   2018-10-29 16:57:35 EE_agri8    557.8357    25.84484    70.24592    508.5654    99.55399    99.67636    
6   10/29/2018 12:12    EE_agri8    557.8357    25.84484    70.24592    508.5654    99.55399    99.67636    23.8600 24.0549
7   10/29/2018 12:13    EE_agri8    557.8357    24.00000    45.40000    41.0000 99.55399    99.67636    
8   2018-10-29 12:14:20 EE_agri8    557.8357    25.84484    70.24592    508.5654    72.15000    99.67636    
9   2018-10-29 17:01:04 EE_agri8    557.8357    25.84484    70.24592    508.5654    99.55399    99.67636    
10  10/30/2018 12:12    EE_agri8    557.8357    25.84484    70.24592    508.5654    99.55399    99.67636    
11  10/30/2018 12:14    EE_agri8    557.8357    24.20000    45.40000    41.0000 99.55399    99.67636    
12  2018-10-30 12:15:23 EE_agri8    557.8357    25.84484    70.24592    508.5654    72.84000    99.67636    
13  2018-10-30 17:02:14 EE_agri8    557.8357    25.84484    70.24592    508.5654    99.55399    99.67636    
14  10/31/2018 12:13    EE_agri8    557.8357    25.84484    70.24592    508.5654    99.55399    99.67636

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете использовать функцию parsedate, которая пытается определить формат даты, а затем с некоторым спором вы можете использовать facet_grid в ggplot2, чтобы разбить данные на нужные группы:

library(dplyr)
library(parsedate)

# Parse dates
(df <- df %>%
    mutate(Date = parse_date(Date),
           time = format(Date, "%H:%M:%S"), # Strips date from Date
           day = format(Date, "%Y/%m/%d"), # strips time from Date
           month = format(Date, "%Y/%m"), # format by year/month
           week = strftime(Date, format = "%V") # finds the week of year the date falls into
           ))

# By Day
df %>%
  ggplot(aes(x = time, y = Soil)) +
  geom_point() +
  facet_grid(day~.)

# By Week
df %>%
  ggplot(aes(x = Date, y = Soil)) +
  geom_point() +
  facet_grid(week~.)

# By Month
df %>%
  ggplot(aes(x = Date, y = Soil)) +
  geom_point() +
  facet_grid(month~.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...