Есть ли способ использовать код r для расчета средней цены за определенные c дней? (Функция СРЗНАЧЕСЛИ) - PullRequest
0 голосов
/ 26 мая 2020

Во-первых: я видел другие сообщения о переводах AVERAGEIF из excel в R, но я не видел ни одного, который работал бы в моем конкретном случае c, и я не мог найти хотя бы одну работу.

У меня есть набор данных, который включает ежедневные расценки на несколько списков.

Это выглядит так

  listing_id     date price
1       1000 1/2/2015  $100
2       1200 2/4/2016  $150

Образец набора данных (и желаемый результат) @ https://send.firefox.com/download/228f31e39d18738d/#rlMmm6UeGxgbkzsSD5OsQw

Набор данных, который я хотел бы У have есть только дата и средние цены всех объявлений на эту дату. Цель состоит в том, чтобы получить (другой) фрейм данных, который выглядел бы примерно так, чтобы я мог работать с ним:

       Date Average Price
1  4/5/2015      204.5438
2  4/6/2015      182.6439
3  4/7/2015       176.553
4  4/8/2015      182.0448
5  4/9/2015      183.3617
6 4/10/2015      205.0997
7 4/11/2015      197.0118
8 4/12/2015      172.2943

Я создал это в Excel с помощью функции Average.if (и скопируйте вставку по значению) из примера, приведенного выше.

Сначала я попытался отформатировать данные в Excel, где я мог бы использовать функцию AVERAGE.IF, говоря, взять среднее значение, если это указанная дата c. Проблема в том, что набор данных состоит из 30 миллионов строк, а в Excel допускается только 1 миллион, поэтому это не сработало.

То, что я сделал до сих пор: я создал фрейм данных в R (где я хочу, чтобы средние цены были go), используя

Avg = data.frame("Date" =1:2, "Average Price"=1:2)
Avg[nrow(Avg) + 2036,] = list("v1","v2")
Avg$Date = seq(from = as.Date("2015-04-05"), to = as.Date("2020-11-01"), by = 'day')

Я попытался создать среднее значение как функция эта статья и еще одна, но не удалось заставить ее работать.

Я надеюсь, что этой информации достаточно для go, иначе я был бы более чем счастлив предоставить больше.

1 Ответ

0 голосов
/ 26 мая 2020

Если ваш вопрос заключается в том, как воспроизвести функцию СРЗНАЧЕСЛИ, вы можете использовать логическое индексирование:

Excel data

Код R:

> df
  Dates Prices
1     1    100
2     2    120
3     3    150
4     1    320
5     2    250
6     3    210
7     1    102
8     2    180
9     3    150
idx <- df$Dates == 1  # Positions where condition is true
mean(df$Prices[idx])  # Prints same output as Excel
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...