An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110818/e1f652a2/attachment.pl>
Concatenate two strings in one in a string matrix
7 messages · R. Michael Weylandt, David Winsemius, Eduardo M. A. M. Mendes
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110818/95850ddd/attachment.pl>
On Aug 18, 2011, at 2:35 PM, Eduardo Mendes wrote:
Dear R-Users I have the following matrix
out$desc [,1] [,2]
[1,] "" ""
[2,] "y_{01}(k-001)" ""
[3,] "y_{01}(k-002)" ""
[4,] "y_{01}(k-003)" ""
[5,] "u_{01}(k-001)" ""
[6,] "u_{01}(k-002)" ""
[7,] "u_{01}(k-003)" ""
[8,] "y_{01}(k-001)" "y_{01}(k-001)"
[9,] "y_{01}(k-001)" "y_{01}(k-002)"
[10,] "y_{01}(k-001)" "y_{01}(k-003)"
[11,] "y_{01}(k-001)" "u_{01}(k-001)"
and need to concatenate each line to a single string. Something like
[2,] "y_{01}(k-001)" "" -> [2,] "y_{01}(k-001)"
[11,] "y_{01}(k-001)" "u_{01}(k-001)" -> [11,] "y_{01}(k-001)*u_{01}
(k-001)"
Is there a way to do it without going through every column?
apply(out$desc, 1, paste, collapse="") It is ambiguous what you want for a delimiter. In one case you used "", and another you used "*". I used "".
David Winsemius, MD West Hartford, CT
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110819/74ec2e13/attachment.pl>
On Aug 19, 2011, at 9:45 AM, Eduardo Mendes wrote:
Hello
Many thanks.
* is not a typo. The output is a description of a nonlinear system
so terms such as y(k-1)*y(k-2) are allowed. I wonder whether ""
could be ignored so that the outputs such as y_{01}(k-003)* would
not show up.
Paste with "*" then remove trailing "*"'s:
ifelse( grepl("*$", result), sub("*","", result), result)
Cheers Ed On Thu, Aug 18, 2011 at 3:40 PM, David Winsemius <dwinsemius at comcast.net
wrote:
On Aug 18, 2011, at 2:35 PM, Eduardo Mendes wrote:
Dear R-Users
I have the following matrix
out$desc [,1] [,2]
[1,] "" ""
[2,] "y_{01}(k-001)" ""
[3,] "y_{01}(k-002)" ""
[4,] "y_{01}(k-003)" ""
[5,] "u_{01}(k-001)" ""
[6,] "u_{01}(k-002)" ""
[7,] "u_{01}(k-003)" ""
[8,] "y_{01}(k-001)" "y_{01}(k-001)"
[9,] "y_{01}(k-001)" "y_{01}(k-002)"
[10,] "y_{01}(k-001)" "y_{01}(k-003)"
[11,] "y_{01}(k-001)" "u_{01}(k-001)"
and need to concatenate each line to a single string. Something like
[2,] "y_{01}(k-001)" "" -> [2,] "y_{01}(k-001)"
[11,] "y_{01}(k-001)" "u_{01}(k-001)" -> [11,] "y_{01}(k-001)*u_{01}
(k-001)"
Is there a way to do it without going through every column?
apply(out$desc, 1, paste, collapse="")
It is ambiguous what you want for a delimiter. In one case you used
"", and another you used "*". I used "".
--
David Winsemius, MD
West Hartford, CT
David Winsemius, MD West Hartford, CT
On Aug 19, 2011, at 10:21 AM, David Winsemius wrote:
On Aug 19, 2011, at 9:45 AM, Eduardo Mendes wrote:
Hello
Many thanks.
* is not a typo. The output is a description of a nonlinear
system so terms such as y(k-1)*y(k-2) are allowed. I wonder
whether "" could be ignored so that the outputs such as y_{01}
(k-003)* would not show up.
Paste with "*" then remove trailing "*"'s:
ifelse( grepl("*$", result), sub("*","", result), result)
Rather (but still untested)
ifelse( grepl("\\*$", result), sub("\\*","", result), result)
david.
>
>> Cheers
>>
>> Ed
>>
>>
>> On Thu, Aug 18, 2011 at 3:40 PM, David Winsemius <dwinsemius at comcast.net
>> > wrote:
>>
>> On Aug 18, 2011, at 2:35 PM, Eduardo Mendes wrote:
>>
>> Dear R-Users
>>
>> I have the following matrix
>>
>> out$desc [,1] [,2]
>> [1,] "" ""
>> [2,] "y_{01}(k-001)" ""
>> [3,] "y_{01}(k-002)" ""
>> [4,] "y_{01}(k-003)" ""
>> [5,] "u_{01}(k-001)" ""
>> [6,] "u_{01}(k-002)" ""
>> [7,] "u_{01}(k-003)" ""
>> [8,] "y_{01}(k-001)" "y_{01}(k-001)"
>> [9,] "y_{01}(k-001)" "y_{01}(k-002)"
>> [10,] "y_{01}(k-001)" "y_{01}(k-003)"
>> [11,] "y_{01}(k-001)" "u_{01}(k-001)"
>>
>>
>> and need to concatenate each line to a single string. Something like
>>
>> [2,] "y_{01}(k-001)" "" -> [2,] "y_{01}(k-001)"
>>
>> [11,] "y_{01}(k-001)" "u_{01}(k-001)" -> [11,] "y_{01}(k-001)*u_{01}
>> (k-001)"
>>
>> Is there a way to do it without going through every column?
>>
>> apply(out$desc, 1, paste, collapse="")
>>
>> It is ambiguous what you want for a delimiter. In one case you used
>> "", and another you used "*". I used "".
>>
>>
>> --
>>
>> David Winsemius, MD
>> West Hartford, CT
>>
>>
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> 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.
David Winsemius, MD
West Hartford, CT
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110819/b492af20/attachment.pl>