Подстановка фрейма данных к определенным датам после использования as.character (as.Date ()) для преобразования исходной факторной переменной Столбец даты - PullRequest
0 голосов
/ 29 апреля 2019

Я очень плохо знаком с R и пытаюсь решить некоторые практические проблемы. У меня есть большой набор данных, из которого мне нужно создать меньший набор данных по диапазону дат. У меня возникают трудности с этим, и, возможно, это из-за того, что я плохо понимаю, что делают эти R-команды.

Вот первые шесть строк набора данных rawdata:

Date     Time Global_active_power Global_reactive_power Voltage
1 16/12/2006 17:24:00               4.216                 0.418 234.840
2 16/12/2006 17:25:00               5.360                 0.436 233.630
3 16/12/2006 17:26:00               5.374                 0.498 233.290
4 16/12/2006 17:27:00               5.388                 0.502 233.740
5 16/12/2006 17:28:00               3.666                 0.528 235.680
6 16/12/2006 17:29:00               3.520                 0.522 235.020
  Global_intensity Sub_metering_1 Sub_metering_2 Sub_metering_3
1           18.400          0.000          1.000             17
2           23.000          0.000          1.000             16
3           23.000          0.000          2.000             17
4           23.000          0.000          1.000             17
5           15.800          0.000          1.000             17
6           15.000          0.000          2.000             17

Я хотел бы создать подмножество этих данных, где даты будут работать с 01.02.2007 по 02.02.2007.

Из этого потока я нашел предложение сначала запустить функцию as.Date (и функцию as.character, если необходимо), а затем функцию подмножества.

Итак, для начала я преобразовал столбец «Дата» из коэффициентов в символы, используя as.character (rawdata $ Date). Поняв, что это сгенерировало целый список данных, я присвоил его объекту CharDate следующим образом:

CharDate <- as.character(rawdata$Date)

Затем я снова преобразовал данные, используя as.Date, намереваясь использовать это для подмножества моих необработанных данных, присвоив их DateasDate.

DateasDate <- as.Date(CharDate, "%d/%m/%y")

На данный момент, я не понимаю, как использовать это для подмножества моего исходного файла rawdata, так как DateasDate не является новой переменной? Должен ли я добавить DateasDate в качестве столбца к rawdata? Можно ли каким-либо образом внести изменения в столбец Дата непосредственно в rawdata, чтобы мне не пришлось это делать?

Любая помощь будет высоко ценится!

1 Ответ

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

Вы можете сначала преобразовать объект Date в фактическую дату, а затем subset кадр данных.

df$Date <- as.Date(df$Date, "%d/%m/%Y")
subset(df, Date >= as.Date("2007-01-02") & Date <= as.Date("2007-02-02"))

Или использовать ту же логику с dplyr

library(dplyr)

df %>%
  mutate(Date = as.Date(Date, "%d/%m/%Y") %>%
  filter(Date >= as.Date("2007-01-02") & Date <= as.Date("2007-02-02"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...