Я использовал некоторый код для заполнения пробелов в данных временных рядов с помощью простой операции конвейера, используя pad
и fill_by_value
.Он прекрасно работал у меня в течение нескольких месяцев, но сегодня он решил прекратить работу и предоставить мне Error in is.data.frame(x) : object 'y' not found
.
. Есть много вопросов, требующих устранения этой же ошибки.Некоторые из решений включают в себя заключение скобок вокруг функции, вызывающей ошибку (в данном случае fill_by_value
), запуск undebug
для функции (не относится ко мне, потому что ни одна из моих функций не находится в режиме отладки), и постановка.$ перед объектом, который не найден.Ни одно из этих решений не помогло мне.
Вот упрощенная версия того, что я пытаюсь сделать (я нашел это в разделе примеров описания функции pad
, который, кстати, не работает):
library(padr); library(dplyr) # for the pipe operator
month <- seq(as.Date('2016-04-01'), as.Date('2017-04-01'),
by = 'month')[c(1, 4, 5, 7, 9, 10, 13)]
month_df <- data.frame(month = month, y = runif(length(month), 10, 20))
# fill all y with 0
month_df %>% pad %>% fill_by_value(y)
Это приводит к ошибке Error in is.data.frame(x) : object 'y' not found
, когда он должен преобразовать данные из этого:
month y
1 2016-04-01 19.75770
2 2016-07-01 10.90725
3 2016-08-01 12.68625
4 2016-10-01 12.78528
5 2016-12-01 12.00717
6 2017-01-01 19.70017
7 2017-04-01 14.06676
в это:
month y
1 2016-04-01 19.75770
2 2016-05-01 0
3 2016-06-01 0
4 2016-07-01 10.90725
5 2016-08-01 12.68625
6 2016-09-01 0
7 2016-10-01 12.78528
8 2016-11-01 0
9 2016-12-01 12.00717
10 2017-01-01 19.70017
11 2017-02-01 0
12 2017-03-01 0
13 2017-04-01 14.06676
Возможно, я просто не осведомлен о способахR, но я не могу понять, почему эта простая строка кода перестала работать на меня.