Assigning a function to the 'times' argument of rep()
On Sun, Feb 12, 2012 at 07:56:48PM -0800, z2.0 wrote:
Question: I'm trying to use paste() with rep() to reformat a series of values as zip codes. e.g., if column 1 looks like: 52775 83111 99240 4289 112 57701 20001 I want rows 4 and 5 to read, "04289" "00112" My thought was this:
perry_frame$zip <- ifelse(nchar(as.character(perry_frame$zip))<5,
paste(rep("0",times=(5-nchar(as.character(perry_frame$zip)))),perry_frame$zip,sep=''),
as.character(perry_frame$zip))
But R throws the following:
Error in rep("0", times = (5 - nchar(as.character(perry_frame$zip)))) :
invalid 'times' argument
Is there a reason this doesn't work?
Hi. Working solutions were suggested by others. The answer to your question is that "times" argument should either be a single number or a vector of the same length as the first argument. However, "0" has length 1 5 - nchar(as.character(perry_frame$zip)) [1] 0 0 0 1 2 0 0 Hope this helps. Petr Savicky.