[R] Working with string

Bert Gunter gunter.berton at gene.com
Sun Aug 11 21:15:08 CEST 2013


Christopher:

Yes, I warned you about both cases: In your second example there is no
match since there is no nonupper case version of the all upper case
entries. As you did not specify what should be done in that case, I
leave it to you to figure out the necessary modifications of my code.

Possible Hint: ?is.na

-- Bert

On Sun, Aug 11, 2013 at 10:54 AM, Christofer Bogaso
<bogaso.christofer at gmail.com> wrote:
> Thanks Bert and Arun for your help.
>
> As Bert already pointed out, Arun's code is working well, however except
> this:
>
>> CH <- c("MRTZIt", "MRTZIT", "PPBZJG", "ppbzJG")
>> chnew<-CH
>> chnew[duplicated(toupper(CH))]<-CH[duplicated(toupper(CH),fromLast=TRUE)]
>> CH
> [1] "MRTZIt" "MRTZIT" "PPBZJG" "ppbzJG"
>> chnew
> [1] "MRTZIt" "MRTZIt" "PPBZJG" "PPBZJG"
>
>
> However Bert's code is also working very well, except following scenario:
>
>> CH <- c("MRTZIt", "MRTZIT", "PPBZJG", "PPBZJG")
>> caps <- CH %in%  toupper(CH)
>> noncaps <- CH[!caps]
>> chnew <- CH
>> chnew[caps] <- noncaps[match(CH[caps], toupper(noncaps))]
>> CH
> [1] "MRTZIt" "MRTZIT" "PPBZJG" "PPBZJG"
>> chnew
> [1] "MRTZIt" "MRTZIt" NA       NA
>
>
> In my case, both can be well possibilities.
>
> Any better pointer?
>
> Thanks and regards,
>
>
>
>
> On Sun, Aug 11, 2013 at 9:42 PM, Bert Gunter <gunter.berton at gene.com> wrote:
>>
>> Well, maybe: it assumes that the uppercase string version always
>> occurs after the nonuppercase version. That's why I rejected it.
>>
>> However, it points out something important: details matter. The more
>> one knows about the nature of the problem, the better the solution one
>> can tailor -- a remark for which the response should be, "well duhhh!"
>>  But posters frequently seem to disregard this.
>>
>> -- Bert
>>
>> On Sun, Aug 11, 2013 at 8:43 AM, arun <smartpink111 at yahoo.com> wrote:
>> >
>> >
>> > Hi,
>> >
>> > May be this helps:
>> > chnew<-CH
>> >
>> > chnew[duplicated(toupper(CH))]<-CH[duplicated(toupper(CH),fromLast=TRUE)]
>> >  chnew
>> > #[1] "aBd"    "sTb"    "aBd"    "dFDasd" "asd"    "dFDasd"
>> > A.K.
>> >
>> >
>> > ----- Original Message -----
>> > From: Christofer Bogaso <bogaso.christofer at gmail.com>
>> > To: r-help <r-help at r-project.org>
>> > Cc:
>> > Sent: Sunday, August 11, 2013 8:39 AM
>> > Subject: [R] Working with string
>> >
>> > Hello again,
>> >
>> > Let say I have a lengthy character vector like:
>> >
>> > CH <- c("aBd", "sTb", "ABD", "dFDasd", "asd", "DFDASD")
>> >
>> > Now I want to create a vector like:
>> >
>> > CH_New <- c("aBd", "sTb", "aBd", "dFDasd", "asd", "dFDasd")  ## the 3rd
>> > and
>> > 6th element replaced
>> >
>> > Basically, the goal is:
>> >
>> > If an element has all upper case then it will find another element with
>> > all
>> > lower case or mix of upper/lower case. Then the all-upper-case element
>> > will
>> > be replaced by that mix. If there is multiple match then chose the first
>> > one.
>> >
>> >
>> > Can somebody give me any pointer how can I achieve that?
>> >
>> > Thanks and regards,
>> >
>> >     [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list
>> > 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.
>> >
>> >
>> > ______________________________________________
>> > R-help at r-project.org mailing list
>> > 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.
>>
>>
>>
>> --
>>
>> Bert Gunter
>> Genentech Nonclinical Biostatistics
>>
>> Internal Contact Info:
>> Phone: 467-7374
>> Website:
>>
>> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
>
>



-- 

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm



More information about the R-help mailing list