Could you provide us some working codo, so that we can reproduce the error
and see what went wrong?
Of course. Here is the relevant part of the code I'm working with. I suppose it will be helpful for you to have the csv file, as well. But as an attachment will be deleted, I will send it to you upon request.
****
rm(list=ls(all.names=TRUE))
agr1<-read.csv2("sales.csv")
attach(agr1)
# Select variables:
type3m<-data.frame(cornmethod,maizemethod,paddymethod,ricemethod,rapemethod,ograinmethod,vegmethod,
fruitmethod,ocropmethod,pigmethod,cowmethod,poultrymethod,eggmethod,oanimalmethod,forestrymethod,fisherymethod,
rentmethod,processmethod,othermethod)
type3l<-data.frame(cornloc,maizeloc,paddyloc,riceloc,rapeloc,ograinloc,vegloc,fruitloc,ocroploc,pigloc,
cowloc,poultryloc,eggloc,oanimalloc,forestryloc,fisheryloc,rentloc,processloc,otherloc)
#Define legends for bars
barnamesm<-c("1=Village fair","2=State quota", "3=Trader", "4=Other")
barnamesloc<-c("1=nat. vill.","2=admin.
vill.","3=township","4=county","5=province","6=outside prov.")
#Print barplots into ps file
postscript("salemethods.ps", horizontal=TRUE)
for(xn in names(type3m)) barplot(table(type3m[[xn]]), main = paste
("Barplot of", xn), width=0.75,legend.text=barnamesm,
xlim=c(0,4),ylim=c(0,400))
dev.off()
#Print barplots into ps file
postscript("salelocations.ps", horizontal=FALSE)
for(xn in names(type3l)) barplot(table(type3l[[xn]]), main =
paste("Barplot of", xn),legend.text=barnamesloc,xlim=c(0,6))
dev.off()
detach(agr1)
Uli Kleinwechter wrote:
Dear all,
Within a larger script I use the following code to produce barplots for
all variables contained in a dataframe "type3m":
for(xn in names(type3m)) barplot(table(type3m[[xn]]), main = paste
("Barplot of", xn), width=0.75,legend.text=barnamesm,
xlim=c(0,4),ylim=c(0,400))
The plots are produced and printed into a *.ps file. However, R gives an
error message and aborts the script. The error message is:
Fehler in rect(as.double(xleft), as.double(ybottom),
as.double(xright), :
ung?ltiges erstes Argument
(it's in German. In English, it says something like "Error in
rect(as.double(xleft), as.double(ybottom), as.double(xright), : invalid
first argument)
It seems to be some problem with the barplot function. The variables in
the dataframe are discrete variables taking values from 1 to 4 (hence,
the xlim=c(0,4) and the graph is supposed to show the frequency of each
value. Maybe the problem is related to the fact that not some variables
don't take all of the values, i.e., there are some that don't take the
value 1, for example.
I spent quite some time trying to solve the problem, but can't manage
it. What's wrong here and how can it be solved?
Thank you very much!
Uli
[[alternative HTML version deleted]]
Uli Kleinwechter
Department of Agricultural Economics and Social Sciences
Faculty of Agriculture and Horticulture
Humboldt University of Berlin
Unter den Linden 6
D-10099 Berlin, Germany
Phone: (+49) 30 2093 6124, Fax. (+49) 30 2093 6301
E-mail: uli.kleinwechter at agrar.hu-berlin.de