[R] More Columns than column names Error

arun smartpink111 at yahoo.com
Tue Oct 22 21:07:25 CEST 2013


Hi,

The "Garbage.txt" file you showed in the original post is slighly different (in spacing) from the one you are showing now.

lines1 <- readLines("Garbage.txt",warn=FALSE)

lines2 <- readLines("GarbageNew.txt",warn=FALSE) #saved the new as "GarbageNew.txt"

lines1
 [1] "Material\tWeight(Million Tons)\tPercent"
 [2] "Food Scraps\t25.9\t\t\t11.2"            
 [3] "Glass\t\t12.8\t\t\t5.5"                 
 [4] "Metals\t\t18.0\t\t\t7.8"                
 [5] "Paper\t\t86.7\t\t\t37.4"                
 [6] "Plastics\t24.7\t\t\t10.7"               
 [7] "Textiles\t15.8\t\t\t6.8"                
 [8] "Wood\t\t12.7\t\t\t5.5"                  
 [9] "Yard trimmings\t27.7\t\t\t11.9"         
[10] "Other\t\t7.5\t\t\t3.2"                  
[11] "Total\t\t231.9\t\t\t100.0"              
 lines2
 [1] "Material\tWeight(Million Tons)\tPercent"
 [2] "Food Scraps\t25.9\t11.2"                
 [3] "Glass\t12.8\t5.5"                       
 [4] "Metals\t18.0\t7.8"                      
 [5] "Paper\t86.7\t37.4"                      
 [6] "Plastics\t24.7\t10.7"                   
 [7] "Textiles\t15.8\t6.8"                    
 [8] "Wood\t12.7\t5.5"                        
 [9] "Yard trimmings\t27.7 11.9"   #####here there are two delimiters "\t" and "space"            
[10] "Other\t7.5\t3.2"                        
[11] "Total\t231.9\t100.0"      


Looks like you changed the tab spaces.
dat1 <- read.table(text=gsub("\t+","\t",lines1),stringsAsFactors=FALSE,sep="\t",check.names=FALSE,header=TRUE) #no errors

#able to reproduce the error mentioned

dat2 <- read.table(text=gsub("\t+","\t",lines2),stringsAsFactors=FALSE,sep="\t",check.names=FALSE,header=TRUE)
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  line 8 did not have 3 elements

#Try this
 dat2 <- read.table(text=gsub("(.*\\d+) (\\d+)","\\1\t\\2",lines2),stringsAsFactors=FALSE,sep="\t",check.names=FALSE,header=TRUE)
 identical(dat1,dat2)
#[1] TRUE

jpeg("garbageweight.jpg",width=800)
 barplot(dat2[-10,2],names.arg=dat2[-10,1],ylab=colnames(dat2)[2],col=rainbow(9),main="American garbage")
 dev.off()


Attached is the pdf of the figure
A.K.



Garbage.txt

The error I get now is "Line 8 did not have 3 elements" 





On Tuesday, October 22, 2013 9:41 AM, arun <smartpink111 at yahoo.com> wrote:
Hi,
Try:
 lines1 <- readLines("Garbage.txt",warn=FALSE)
dat1 <- read.table(text=gsub("\t+","\t",lines1),stringsAsFactors=FALSE,sep="\t",check.names=FALSE,header=TRUE)
 str(dat1)
#'data.frame':    10 obs. of  3 variables:
# $ Material            : chr  "Food Scraps" "Glass" "Metals" "Paper" ...
# $ Weight(Million Tons): num  25.9 12.8 18 86.7 24.7 ...
# $ Percent             : num  11.2 5.5 7.8 37.4 10.7 6.8 5.5 11.9 3.2 100
jpeg("garbageweight.jpg",width=800)
 barplot(dat1[-10,2],names.arg=dat1[-10,1],ylab=colnames(dat1)[2],col=rainbow(9),main="American garbage")
 dev.off()


A.K.


Hello guys, I'm having this weird problem with my assignment. I can't seem to import the data that I have created. 

I keep getting an error that says "Error: More Columns than Column names" 

This is my data file. 
Garbage.txt

Was also wondering if you guys could send me into the right direction on how to do this. 

1. Create a data frame with the data given above. 
2. Create the bar plot for weight variable with appropriate labels. Resize the graphics 
panel/ window so that all labels are visible. 
3. Add colors. Suppose n is the number of bars. 
> barplot(..., col = rainbow(n)) 
4. Save the plot to garbageweight.jpg 

This is how it's supposed to look like at the end.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: garbage.weight.pdf
Type: application/pdf
Size: 4688 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20131022/67898a6f/attachment.pdf>


More information about the R-help mailing list