# [R] Help needed for one question (Urgent)

Chandeep Kaur ch@ndeep@v|rd| @end|ng |rom gm@||@com
Tue Nov 5 16:30:08 CET 2019

```Dear All,

Thanks for all the support and help and I think I was able to solve my
problem.

Thanks a ton.

Best Regards,
Chandeep Kaur

On Tue, 5 Nov 2019, 8:57 pm Richard O'Keefe, <raoknz using gmail.com> wrote:

> This looks vaguely like something from exercism.
> Let's approach it logically.
>  xa xb xc ya yb zc
> We see two patterns here:
> A:  x x x y y z
> B: a b c a b c
> If only we had these two character vectors, we could use
>  paste(A, B, sep = "")
> to get the desired result.  So now we have reduced the
> problem to two simpler subproblems.  We have been given
> a clue that rep() might be useful.
> A: rep(c("x", "y", "z"), c(1, 2, 3))
> B: rep(c("a", "b", "c"), 3)
> But you were told not to use c().  So now we have three
> simpler subsubproblems:
> C: "x" "y" "z"
> D: 3 2 1
> E: "a" "b" "c"
> You were given another hint.  seq().  That builds a vector of numbers.
> Reading ?seq will give you
> D: seq(from = 3, to = 1, by = -1)
> or using ":" syntax,
> D: 3:1
>
> What about C and E?  This needs two more pieces of knowledge:
> - the variable letters,whose value is c("a","b",...,"y","z")
> - how vector indexing works in R.
> E: letters[1:3]
> C: letters[24:26]
> So now we can put all the pieces together:
> paste(rep(letters[24:26], 3:1), rep(letters[1:3], 2), sep = "")
>
> You were given
>  - seq
>  - rep
> as hints.  You were expected to look up string handling in R
> and find things like paste(), substr(), and nchar().
>
> What about the variable 'letters'?
> Well, you were expected to know or find out about substr.
> You were certainly expected to know about "vectorising".
> So you would naturally try substr("abc", 1:3, 1:3).
> And that would not work.
> So you would be expected to read the documentation:
> ?substr
> And then you would find that substr() *doesn't* do what
> you expect, but substring() *does*.  So
> C: substring("xyz", 1:3, 1:3)
> E: substring("abc", 1:3, 1:3)
>
> This is not really an exercise in R programming.
> In real R programming you *don't* avoid arbitrary aspects of the
> language and library, but use whatever is appropriate.
> So what *is* this exercise about?
>
> (1) It is an exercise in working backwards.  (See the classic book
> "How to Solve It" by Polya.)  You know what you must construct,
> you have been given some directions about what to use.  It's
> about saying "well, I could *finish* this task by doing this action,
> so what would I have to set up for that?"  In this case, the key
> step for me was seeing xa xb xc ya yb yc as (x,x,x,y,y,z)++(a,b,c,a,b,c).
> The mention of rep had me *looking* for repetitions like that.
>
> (2) It is an exercise in using the R documentation to figure out how to
> use rep and seq and what is available for splitting and pasting strings.
>
> There is of course no unique answer to this.
> substring("xaxbxcyaybzc", seq(from=1,to=11,by=2), seq(from=2,to=12,by=2))
> is another solution.  You didn't say you *had* to use rep.
>
> It's not the answer that matters for an exercise like this.
> It's how you get there.
>
>
>
>
>
> On Tue, 5 Nov 2019 at 23:40, Chandeep Kaur <chandeep.virdi using gmail.com>
> wrote:
> >
> > Dear Team,
> >
> desired
> > output?
> >
> > Produce the following sequence using only rep(), seq() and potentially
> > other functions/operators. You must not use c() nor explicit loops
> >
> > “xa” “xb” “xc” “ya” “yb” “zc”
> >
> > Thanks & Regards,
> >
> > Chandeep Kaur
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help