4

I'm using the lattice package in R to plot multiple time series on a single graph. I'm getting the error message "NA introduced by coercion" every time I try to do it. I think the issue is that I have missing data in the series (i.e. they are not continuous, some of the series start at later dates, etc).

Specifically:

1: In order(as.numeric(x)) : NAs introduced by coercion
2: In diff(as.numeric(x[ord])) : NAs introduced by coercion

This is my code:

library("lattice")
df1 <- structure(list(STRING = c("1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
"1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC"
), time = c("2006-04-01", "2006-10-01", "2006-12-01", "2007-02-01", 
"2007-03-01", "2007-04-01", "2007-05-01", "2007-06-01", "2007-07-01", 
"2007-08-01", "2007-09-01", "2007-10-01", "2007-11-01", "2007-12-01", 
"2008-01-01", "2008-02-01", "2008-03-01", "2008-04-01", "2008-05-01", 
"2008-06-01", "2008-07-01", "2008-08-01", "2008-09-01", "2008-10-01", 
"2008-11-01", "2008-12-01", "2009-01-01", "2009-02-01", "2009-03-01", 
"2009-04-01", "2009-05-01", "2009-06-01", "2009-07-01", "2009-08-01", 
"2009-09-01", "2009-10-01", "2009-11-01", "2009-12-01", "2010-01-01", 
"2010-02-01", "2010-03-01", "2010-04-01", "2010-05-01"), ee_qty = c(NA, 
2302, 3434, 1800, 2766, 4408, 6314, 2860, 2476, 1572, 4950, 1812, 
14100, 7591, NA, NA, 11823, NA, NA, 11829, 3836, 5378, 4804, 
4356, 3655, 5955, 1345, 4717, 8854, 11494, 8260, 4330, 8210, 
5875, NA, 10955, 12018, 13052, 5332, 8831, 14260, 4998, NA), 
    ee_amt = c(NA, 33815.88, 60107.4, 66279.2, 66814.46, 129042.18, 
    151649.49, 58576.2, 61984.58, 61782, 102648.16, 67844.4, 
    362371.82, 159274.66, NA, NA, 285847.62, NA, NA, 258045.26, 
    82306.74, 119702.9, 113514.6, 118765.82, 86298.66, 155659.83, 
    40246.14, 134675.59, 236084.63, 256467.56, 210629.14, 99311.04, 
    173380.64, 131071.08, NA, 299148.999999999, 268373.8, 299873.68, 
    78714.6, 230198.46, 310660.74, 96227.82, NA), elite_qty = c(NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, 1281, 3037, 2141, 1764, 
    1661, 1838, 2780, 2627, 2498, 3137, 2238, 2470, 1107, 1886, 
    844, 798, NA, 1588, 1919, 2603, 2680, 2496, 2464, 3041, 3276, 
    5102, 5337, 4140, 5029, 4565, 5570, 6298, NA), elite_amt = c(NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, 34956.08, 48618.37, 58880.59, 
    49141.23, 49067.42, 40105.91, 89717.69, 78612.5, 40608.3599999999, 
    65893.38, 33706.66, 77191.76, 45096.9, 55742.83, 29993.7600000000, 
    27171.22, NA, 1427.23, 2466.64, 54500.19, 66476.09, 66041.74, 
    59235.3, 75234.11, 78109.54, 129537.51, 121485.25, 94928.86, 
    112024.69, 110419.7, 128789.94, 134046.79, NA), Sabry_Qty = c(596, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Sabry_amt = c(17761.06, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), depo_qty = c(NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, 902, 319, 883, 597, 854, 710, 911, 573, 447, 857, 795, 
    997, 822, 640, 716, 708, 449, 535, 823, 916, 787, NA, NA, 
    NA, NA, NA), depo_amt = c(NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, 31011.68, 13556.65, 32134.72, 
    23106.94, 36681.95, 30220.74, 38051.93, 24941.85, 19337.46, 
    31360.4, 30182.18, 41363.71, 34419.34, 25034.18, 29616, 27125.93, 
    18230.98, 21119.9100000000, 33614.83, 37555.37, 33671.35, 
    NA, NA, NA, NA, NA), tyc_qty = c(NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, 58, 116, 136, 167, 186, 139, 165, 
    169, 337, 219, 207, 210, 280, 366, 393, 216), tyc_amt = c(NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3103.73, 7538.71, 
    7497.34, 14938.68, 12864.65, 10368.91, 12501.45, 12580.67, 
    28185.21, 17052.22, 15202.93, 16106.3, 19176.72, 24466.38, 
    26443.53, 15373.87), string2 = c("1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", "1A AUTO INC", 
    "1A AUTO INC")), .Names = c("STRING", "time", "ee_qty", "ee_amt", 
"elite_qty", "elite_amt", "Sabry_Qty", "Sabry_amt", "depo_qty", 
"depo_amt", "tyc_qty", "tyc_amt", "string2"), class = "data.frame", row.names = c(NA, 
43L))

graph1 <- xyplot(ee_amt + elite_amt + Sabry_amt + depo_amt + tyc_amt ~ time, data = df1, type = "1", auto.key = TRUE)
print(graph1)
Julius Vainora
  • 47,421
  • 9
  • 90
  • 102
aesir
  • 565
  • 2
  • 13
  • 23
  • without a [reproducible](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) example, it will be hard to answer this question accurately. – Justin Sep 04 '12 at 16:12
  • remember we do not have `G:\\Auto Parts\\Monthly Revs\\f_1.xls` please provide some example data. try `dput(df1)` or if the data set is too big `head(df1)` – user1317221_G Sep 04 '12 at 16:14

1 Answers1

2

I would suggest this error part of this error is the fact that time is not in a proper time formate i.e.

is.character(df1$time)

see

df1$random<-1:length(df1[[1]])
graph1 <- xyplot(ee_amt + elite_amt + Sabry_amt + depo_amt + tyc_amt ~ random, data = df1, type = "l", auto.key = TRUE)

edit:

or as @plannapus suggests

df1$time <- as.Date(df1$time)
user1317221_G
  • 15,087
  • 3
  • 52
  • 78