Ошибки, связанные с зоопарком и датами - PullRequest
1 голос
/ 29 апреля 2020

Я начал получать ошибку с данными и кодом, который работал нормально, а теперь нет. Работа касается данных об осадках и пакете hydroTSM , который требует зоопарка. Когда я добираюсь до части кода, простая функция, включенная в пакет hydroTSM, не запустится. После устранения неполадок, я думаю, что это связано с пакетом зоопарка, но я не уверен на 100%.

Я пытался очистить свои данные с помощью trimws () и использовать несколько способов, чтобы преобразовать мою df в зоопарк, но ничего. Я начал новый сеанс R и перезагрузил компьютер. Я также переустановил HydroTSM. Есть идеи, что это такое?

Данные

ПРИМЕР

Date, Rainfall
2001-01-01  0.00
2001-01-02  0.00
2001-01-03  0.00
2001-01-04  0.00
2001-01-05  0.00
2001-01-06  0.00
2001-01-07  0.00

ССЫЛКА НА ФАЙЛ

Код

## Library Packages
library(hydroTSM)
library(devtools)

## Read in the data and format for zoo
df <- read.table("Rainfall2" , header = TRUE, sep="\t")
df$Date <- as.Date(df$Date , format = "%m/%d/%y")
x <- zoo(df[, -1], df[, 1])
dates <- time(x)

## Run the daily2monthly function in HydroTSM
m <- daily2monthly(x, FUN=sum, na.rm=TRUE)

Ошибка в daily2monthly (x, FUN = сумма, na.rm = TRUE): неиспользованные аргументы (FUN = сумма, na.rm = TRUE)

Если вы посмотрите на ссылку на пакет, я почти точно следую указаниям, за исключением того, как я форматирую свои данные, которые я придумал самостоятельно. Поэтому я также попробовал следующий код для преобразования в zoo и получил эту ошибку.

x <- read.zoo(df, format = "%d/%m/%Y")

Ошибка в read.zoo (df, format = "% d /% m /% Y"): В индексе 6935 неправильных записей в строках данных:

Я также пытался и получил:

m <- daily2monthly(x)

Ошибка в UseMethod ("time <-"): нет применимого метода for 'time <-' применяется к объекту класса "zoo" </p>

Все остальные функции работают в пакете, включая:

nyears <- yip(from=start(x), to=end(x), out.type="nmbr" ) )

smry(x)

hydroplot(x, var.type="Precipitation", main="at Lake Caroline",
          pfreq = "dm", from="2001-01-01")

Итак, я не очень Понимаю, почему я бью себя об стену с daily2monthy()

Я действительно могу использовать вашу помощь! Большое спасибо!

1 Ответ

0 голосов
/ 29 апреля 2020

Ну, я нашел обходной путь. Здесь есть пара вопросов. Один касается моего форматирования дат в зоопарке, а другой связан с библиотекой, в которой находится daily2monthly().

Первое, что я сделал, это исправил проблему форматирования в зоопарке.

ОТ: x <- read.zoo(df, format = "%Y-%m-%d")

К: x <- read.zoo(df, format = "%d/%m/%Y")

Это исправило ошибки в зоопарке. Затем я заметил проблему с библиотекой при вызове функции в консоли:

enter image description here

Итак, я посмотрел документацию R и узнал, можно позвонить subdaily2monthly(), что я попробовал и все заработало. До сих пор точно не знаю причину, но я думаю, что это как-то связано со столкновением библиотек, предполагая, что daily2monthly() должен быть частью группы hydroTSM при вызове функции из консоли.

НОВЫЙ КОД:

df <- read.table("Rainfall2" , header = TRUE, sep="\t")
df$Date <- as.Date(df$Date , format = "%m/%d/%y")
x <- zoo(df[, -1], df[, 1])
x <- read.zoo(df, format = "%Y-%m-%d")
m <- subdaily2monthly(x, FUN=sum, na.rm=TRUE)

и т. Д. ...

...