Hi --
I'm looking for alternatives to regex for a fairly simply 'reformatting'
problem. Alternatives only because a lot of folks have trouble
parsing/interpreting regex expressions, and I'm looking for suggestions
for something more 'transparent'.
Here is an example of what I'm trying to do. Take the following string,
which I call x, and for each character in the string, replace that
character with the character, followed by a decimal. The following big
of regex works...and illustrates the reformatting I'm after:
x <- '10110111'
print(x)
y <- sub("\\s+$", "", gsub('(.{1})', '\\1.', x))
print(y)
I had a look at formatC or prettyNum as another way to get there from
here, but couldn't get it to work:
x <- '10110111'
hold <- prettyNum(as.numeric(x), big.mark = ".", big.interval = 1,
format = "d", flag = "0", width = nchar(x))
print(hold)
I tried making big.mark a decimal, but that fails, since it confuses
'prettyNum'. OK, so I try a 2-step approach
x <- '10110111'
hold <- prettyNum(as.numeric(x), big.mark = "x", big.interval = 1,
format = "d", flag = "00", width = nchar(x))
hold2 <- (gsub("x",".",hold))
print(hold2)
Seems to work, but...doesn't work (at least, based on what I tried) if
the first character(s) in the string are 0's. [Whereas the regex
approach handles this just fine...]
x <- '0010110111'
hold <- prettyNum(as.numeric(x), big.mark = "x", big.interval = 1,
format = "d", flag = "00", width = nchar(x))
hold2 <- (gsub("x",".",hold))
print(hold2)
Basically, it strips off the leading 0's. I'm sure I'm missing something
with prettyNum/formatC, but I'm also guessing there are alternatives.
Suggestions?
Thanks in advance.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.