Неверный аргумент обрезки при построении графиков для дат в R - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь применить ответ на мой предыдущий вопрос при построении графика с датами по оси x к данным COVID в New York Times , но я получаю сообщение об ошибке:

require(RCurl)
require(foreign)
require(tidyverse) 

counties = read.csv("https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-counties.csv", sep =",",header = T)

Philadelphia <- counties[counties$county=="Philadelphia",]
Philadelphia <- droplevels(Philadelphia)
rownames(Philadelphia) <- NULL

with(as.data.frame(Philadelphia),plot(date,cases,xaxt="n"))

axis.POSIXct(1,at=Philadelphia$date,
             labels=format(Philadelphia$date,"%y-%m-%d"),
             las=2, cex.axis=0.8)
# Error in format.default(structure(as.character(x), names = names(x), dim = dim(x),  : 
# invalid 'trim' argument

Структура данных уже включает формат даты:

> str(Philadelphia)
'data.frame':   21 obs. of  6 variables:
 $ date  : Factor w/ 21 levels "2020-03-10","2020-03-11",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ county: Factor w/ 1 level "Philadelphia": 1 1 1 1 1 1 1 1 1 1 ...
 $ state : Factor w/ 1 level "Pennsylvania": 1 1 1 1 1 1 1 1 1 1 ...
 $ fips  : int  42101 42101 42101 42101 42101 42101 42101 42101 42101 42101 ...
 $ cases : int  1 1 1 3 4 8 8 10 17 33 ...
 $ deaths: int  0 0 0 0 0 0 0 0 0 0 ...

Я попытался изменить вызов оси на

axis.Date(1,Philadelphia$date, at=Philadelphia$date,
          labels=format(Philadelphia$date,"%y-%m-%d"),
          las=2, cex.axis=0.8)

, но безуспешно.

Интересно, имеет ли это отношение к странным горизонтальным линиям на графике (в отличие от точек):

enter image description here

1 Ответ

1 голос
/ 01 апреля 2020

Ошибка 'недопустимый аргумент обрезки' происходит от format (это второй аргумент по умолчанию, поскольку вы не указали явно параметр).

Я не совсем уверен, что вы делаете здесь, но я бы изменил date на Date объект, прежде чем строить данные. Вы также захотите использовать %Y вместо %y Я полагаю.

library(dplyr)

counties = read.csv("https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-counties.csv", sep =",",header = T)

Philadelphia <- counties[counties$county=="Philadelphia",] %>%
    mutate(date = as.POSIXct(date, format = '%Y-%m-%d'))

with(Philadelphia, plot(date,cases))

img

...