
 
  
Dear R users,


The best in this new year 2011.


I am dealing with a character vector  (xx) whose nchar are not the same.


Ex.
nchar(xx)
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 4 4 4 4 4 4 4 4
[75] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ....... 9


I need xx to be nchar = 9 


My best guest was to paste “0's”. Then I need substring (xx, 6, 9).


I came with:


xx[1:61]<-paste("00000000", xx[1:61], sep="")


xx[62:66]<-paste("000000", xx[62:66], sep="")


xx[67:100]<-paste("00000", xx[67:100], sep="")


......
 
> nchar(xx)
[1] 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
[38] 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
[75] 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 .... 9

 
xx<-substring(xx, 6, 9)




This is a solution for one data set would be sufficient but not if I will continuously deal with this same issue.


Furthermore, I am trying to automate the process but I have not be able to came with adequate solution.


I was thinking to create a character vector of 0's 9-nchar(xx). 
Then paste it to xx. 
9-nchar(xx)
[1] 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
[38] 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 6 6 6 6 6 5 5 5 5 5 5 5 5
[75] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ......1




Nevertheless, I have not been able to create this vector nor I do not know if this is the best option.


Another way I thought was to create an if statement, but this will be long and not efficient (I think).
 


Any suggestion, will be appreciated.


Jose



 		 	   		  
	[[alternative HTML version deleted]]

