Проблема при вязании R Markdown File - переменные не распознаны - PullRequest
0 голосов
/ 12 ноября 2018

У меня возникают проблемы, связанные с выводом выражения group by в R при вязании файла уценки.Когда я ссылаюсь на имя переменной выходных данных group_by и оператора суммирования, я получаю сообщение об ошибке, в котором говорится, что переменная не существует.

Ниже приведена версия кода, которая работает при запуске в R Studio, но не работаетв R Markdown.

DF1 <- data.frame(name = c("1", "1", "2", "2", "3", "1" ),
              s_id = c("ab", "ab", "cd", "ab", " bc", "ab"),
              t_id = c("12A", "12A", "12A", "14B", "14B", "14B"))


breakdown <- DF1 %>%
  group_by(name, s_id) %>%
  summarise(count = n_distinct(t_id))


breakdown_v2 <- mutate(.data = breakdown, 
                               number_of_trips = ifelse (s_id == 'ab', (count*5), 
                                                                  ifelse (s_id == 'cd', (count*2), (count*1))))

Нечто подобное уже случалось со мной ранее, что привело меня к явному указанию s_id в операторе суммирования, но в этот раз он не сработает.

Есть идеи?Спасибо

Обновление: фактический использованный код:

```{r Busiest/Quietest Routes}
# I needed to find the number of distinct trips per service before multiplying out the trips per week. 

distinct_trips_breakdown <- Overall_Dublin_Bus_Record %>%
  group_by(route_short_name, service_id) %>%
    summarise(count = n_distinct(trip_id))

distinct_trips_breakdown <- mutate(.data = distinct_trips_breakdown, 
                                number_of_trips_per_week = ifelse (service_id == '1', (count*5), ifelse (service_id == '2', (count*2), (count*1))))

Overall_trips_per_week <- distinct_trips_breakdown %>%
  group_by(route_short_name) %>%
    summarise(total_trips_per_week = sum(number_of_trips_per_week))

Busiest_Routes <- top_n(Overall_trips_per_week, 5)
Quiestest_Routes <- top_n(Overall_trips_per_week, -5)

```

Ответы [ 2 ]

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

Я исправил эту ошибку в конце. Проблема не была при загрузке plyr перед dplyr ... Решил это, поставив dplyr :: before summarys.

```{r }

DF1 <- data.frame(name = c("1", "1", "2", "2", "3", "1" ),
              s_id = c("ab", "ab", "cd", "ab", " bc", "ab"),
              t_id = c("12A", "12A", "12A", "14B", "14B", "14B"))


breakdown <- DF1 %>%
  group_by(name, s_id) %>%
  dplyr::summarise(count = n_distinct(t_id))


breakdown_v2 <- mutate(.data = breakdown, 
                               number_of_trips = ifelse (s_id == 'ab', (count*5), 
                                                                  ifelse (s_id == 'cd', (count*2), (count*1))))
```
0 голосов
/ 12 ноября 2018

Для меня код работает нормально. Не могли бы вы написать свой кусок кода? Это может быть проблема пробелов или что вы не поставили 3 `` `, чтобы закончить блок. Кроме того, не забудьте загрузить пакеты. Попробуйте использовать следующий блок, который работает для меня (загрузив пакеты):

```{r }

DF1 <- data.frame(name = c("1", "1", "2", "2", "3", "1" ),
              s_id = c("ab", "ab", "cd", "ab", " bc", "ab"),
              t_id = c("12A", "12A", "12A", "14B", "14B", "14B"))


breakdown <- DF1 %>%
  group_by(name, s_id) %>%
  summarise(count = n_distinct(t_id))


breakdown_v2 <- mutate(.data = breakdown, 
                               number_of_trips = ifelse (s_id == 'ab', (count*5), 
                                                                  ifelse (s_id == 'cd', (count*2), (count*1))))
```

`

ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...