R mutate ifelse обновить условную строку с вычисленным значением функции - PullRequest
0 голосов
/ 13 апреля 2019

Я использую R mutate для обновления определенной (условной) строки вычисляемой функцией, а именно nrow(), для обновления со значением add (+).Я не могу использовать apply(), так как мне нужно обновить только одну (1) строку для определенного значения.

Например, когда найти строку Year == 2007 и Month == 06, добавьте Incoming.Exam + nrow(df3), так что строка будет 698 + значение nrow.

Я получаю следующую ошибку от mutate impl:

Ошибка в mutate_impl (.data, dots): Column abberville_LA должен иметь длину 96 (количество строк) или один, а не 4

    abberville_LA %>% 
  mutate(abberville_LA, Incoming.Exam = ifelse(abberville_LA$Year == 2007 & abberville_LA$Month == 06, abberville_LA, Incoming.Exam + nrow(abberville_df3), abberville_LA$Incoming.Exam))

    head(abberville_LA, 3)
  Incoming.Exam Year Month    ts_date
1           698 2007     6    2007-06-01
2           NaN 2010     6    2010-06-01

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

1. Ваш вопрос не ясен, поэтому я пытаюсь понять, что вы хотите, и отвечаю на вопрос

2. Вы используете $ в mutate, который не требуется. Выполнение приведенного ниже кода должно решить проблему.

abberville_LA %>% 
  mutate(Incoming.Exam = ifelse(Year == '2007' & Month == '06', Incoming.Exam + nrow(abberville_df3),Incoming.Exam))
0 голосов
/ 13 апреля 2019

проблема была в библиотеке dplyr.Я обнаружил, что у меня была немного более старая версия, и мне нужно было обновить ее, чтобы устранить ошибку «Ошибка в mutate_impl (.data, dots): Ошибка оценки: as_dictionary () больше не существует, начиная с версии 0.3.0. Пожалуйста, используйте вместо этого as_data_pronoun ()»сообщение, указывающее на то, что следует использовать другую версию dplyr.Это исправило код, который был предоставлен в качестве ответов на этом форуме.

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