Как объединить несколько переменных в одну переменную в R - PullRequest
0 голосов
/ 13 декабря 2018

поэтому у меня есть набор данных проката велосипедов в Вашингтоне, округ Колумбия. Некоторые из моих переменных - это факторы, а некоторые числовые и непрерывные.Я не мог найти способ загрузить набор данных, поэтому я надеюсь, что следующего объяснения будет достаточно: я хочу объяснить «количество» (числовое и непрерывное) прокатов велосипедов с климатом.Я хочу объединить следующие переменные в одну, которая будет называться agg_climate:

- season(factor) - 1 = Winter, 2 = Summer, 3 = Spring, 4 = Fall
 - weather(factor) - 1 = Good, 2 = Normal, 3 = Bad
 - temp(continuous) - measured in degrees
 - atemp(continuous) - measured in degrees
 - windspeed(continuous) - measured in mp/h
 - humidity(continuous) - measured in %

    datetime season     holiday  workingday weather  temp  atemp humidity windspeed count hour
3201 2011-09-15 17:00:00 Summer Regular day Working day     Bad 19.68 23.485       82   31.0009   261   17
377  2011-02-02 05:00:00 Winter Regular day Working day     Bad  9.02 12.120       93    7.0015     3    5
6103 2012-06-01 21:00:00 Spring Regular day Working day     Bad 26.24 29.545       78   16.9979    85   21
           daytime
3201    After Noon
377  Early Morning
6103       Evening

рис таблицы данных: https://ibb.co/SnphvBt

Как правильно сделать это?Спасибо!

1 Ответ

0 голосов
/ 24 декабря 2018

Вы можете объединить несколько измерений, связанных с погодой, в одно с именем кажущаяся температура .

Индекс AT ... основан на математической модели взрослого человека, идущего на улице,в тени ( Стедман 1994 ).AT определяется как;температура, при эталонном уровне влажности, вызывает такое же количество дискомфорта, как и при текущей температуре и влажности окружающей среды.

Пожалуйста, смотрите ниже, как это можно реализовать в вашем случае:

x <- structure(list(datetime = structure(c(2L, 1L, 3L), .Label = c("05:00:00", 
"17:00:00", "21:00:00"), class = "factor"), season = structure(c(2L, 
3L, 1L), .Label = c("Spring", "Summer", "Winter"), class = "factor"), 
    holiday = c("Regular day", "Regular day", "Regular day"), 
    workingday = c("Working day", "Working day", "Working day"
    ), weather = structure(c(1L, 3L, 2L), .Label = c("Bad", "Good", 
    "Normal"), class = "factor"), temp = c(19.68, 9.02, 26.24
    ), atemp = c(23.485, 12.12, 29.545), humidity = c(82L, 93L, 
    78L), windspeed = c(31.0009, 7.0015, 16.9979), count = c(261L, 
    3L, 85L), hour = c(17L, 5L, 21L), daytime = c("After Noon", 
    "Early Morning", "Evening")), row.names = c("2011-09-15", 
"2011-02-02", "2012-06-01"), class = "data.frame")

x$e <- x$humidity / 100 * 6.105 * exp(17.27 * x$temp / (237.7 + x$temp)) # vapor pressure
x$windspeed_ms <- 0.4470400 * x$windspeed # windspeed in m/s
x$AT <- x$temp + 0.33 * x$e - 0.7 * x$windspeed_ms - 4.00 # apparent temperature
x[, c("temp",  "humidity", "windspeed", "AT")]

Выход

            temp humidity windspeed        AT
2011-09-15 19.68       82   31.0009 12.166304
2011-02-02  9.02       93    7.0015  6.351849
2012-06-01 26.24       78   16.9979 25.669603

Что касается других ваших переменных, они связаны с сезонностью, и лучше использовать:

  • анализ временных рядов с экзогенными переменными;
  • машинное обучение (например, случайные лесные регрессии, рекуррентные нейронные сети и т. Д.);
  • многомерная (не) линейная регрессия.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...