2016-06-20 9 views
2

Ich versuche, ein Barplot in R mit der X-Achse Jahren von 1975 bis 2015 zu machen. Die Jahre sind in einer Variablen data3$q18yearFirstSclLens.Label jedes Jahr auf X-Achse, auch wenn einige Jahre keine Beobachtungen in R

ich die Jahre:

> yearcount2 <- table(data3$q18yearFirstSclLens) 

> yearcount2 

1976 1982 1983 1984 1985 1986 1987 1989 1991 1992 1993 1994 1995 1997 1998 1999 2000 2001 2002 2003 
1 2 2 2 2 1 2 2 1 1 1 2 2 2 5 7 10 6 3 9 
2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 
8 25 18 26 43 52 78 84 88 91 47 1 

dann meine BarPlot Grundstück:

> bp <- barplot(yearcount2, main="", xlab="", ylab="", ylim=c(0,100), las=2, cex.names=0.75, xaxt="n") 

enter image description here

Aber natürlich habe ich erst Jahre erhalten, für die Beobachtungen sind. Wie kann ich die x-Achsen-Darstellung alle Jahre von 1975 bis 2015 machen, einschließlich der Jahre, in denen keine Beobachtungen gemacht wurden?

Hier ist die dput Info:

> dput(yearcount2) 
structure(c(1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
2L, 5L, 7L, 10L, 6L, 3L, 9L, 8L, 25L, 18L, 26L, 43L, 52L, 78L, 
84L, 88L, 91L, 47L, 1L), .Dim = 32L, .Dimnames = structure(list(
c("1976", "1982", "1983", "1984", "1985", "1986", "1987", 
"1989", "1991", "1992", "1993", "1994", "1995", "1997", "1998", 
"1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", 
"2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", 
"2015")), .Names = ""), class = "table") 

Vielen Dank für Ihre Hilfe!

Antwort

3

Sie etwas tun könnte, wie

minyr <- min(names(yearcount2)); maxyr <- max(names(yearcount2)) 
barplot(setNames(yearcount2[as.character(minyr:maxyr)], minyr:maxyr), las=2) 
+0

Nun, die schön gearbeitet, hätte ich nie gedacht. Vielen Dank! – nchimato