Как исправить is.data.frame (x): объект '' не найдена ошибка при использовании pad - PullRequest
0 голосов
/ 23 сентября 2019

Я использовал некоторый код для заполнения пробелов в данных временных рядов с помощью простой операции конвейера, используя 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, но я не могу понять, почему эта простая строка кода перестала работать на меня.

1 Ответ

0 голосов
/ 23 сентября 2019

Вам нужно изменить порядок загрузки библиотек.

Restarting R session...

> library(padr)
> library(EcoHydRology)
Loading required package: operators

Attaching package: ‘operators’

The following objects are masked from ‘package:base’:

    options, strrep

Loading required package: topmodel
Loading required package: DEoptim
Loading required package: parallel

DEoptim package
Differential Evolution algorithm in R
Authors: D. Ardia, K. Mullen, B. Peterson and J. Ulrich

Loading required package: XML
> library(dplyr) # for the pipe operator

Attaching package: ‘dplyr’

The following object is masked from ‘package:operators’:

    %>%

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union

> 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)
pad applied on the interval: month
        month        y
1  2016-04-01 19.88309
2  2016-05-01  0.00000
3  2016-06-01  0.00000
4  2016-07-01 17.46558
5  2016-08-01 10.34364
6  2016-09-01  0.00000
7  2016-10-01 13.82603
8  2016-11-01  0.00000
9  2016-12-01 17.36399
10 2017-01-01 19.55054
11 2017-02-01  0.00000
12 2017-03-01  0.00000
13 2017-04-01 15.62318
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...