

Hi,
Is there a way to specify the last element of a vector, similar to "end" in
MATLAB?
v[end]
would be MATLAB for
v(length(v))
in R.
While `v(length(v))' does yield the last element, that approach fails in the
following,
rep(v, each=2)[c(1,length(v))]
which is meant to duplicate all elements of `v' except for the first and
last. (I.e., if `v < 1:4', then we want '1 2 2 3 3 4'.)
So the question is, is there a better way specify the last element of a
vector? If not, is there a better way to duplicate all elements of a vector
except for the first and last? (I know you can achieve this using two
lines, but I'm writing because I want to do it using one.)
Alan

Alan Lue
Master of Financial Engineering
UCLA Anderson School of Management
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Sorry  I meant `v(end)' and `v[length(v)]' in the first examples of
my message.
Alan
On Sun, Apr 25, 2010 at 11:10 AM, Alan Lue < [hidden email]> wrote:
> Hi,
> Is there a way to specify the last element of a vector, similar to "end" in
> MATLAB?
> v[end]
> would be MATLAB for
> v(length(v))
> in R.
> While `v(length(v))' does yield the last element, that approach fails in the
> following,
> rep(v, each=2)[c(1,length(v))]
> which is meant to duplicate all elements of `v' except for the first and
> last. (I.e., if `v < 1:4', then we want '1 2 2 3 3 4'.)
> So the question is, is there a better way specify the last element of a
> vector? If not, is there a better way to duplicate all elements of a vector
> except for the first and last? (I know you can achieve this using two
> lines, but I'm writing because I want to do it using one.)
> Alan
>
> 
> Alan Lue
> Master of Financial Engineering
> UCLA Anderson School of Management
>

Alan Lue
Master of Financial Engineering
UCLA Anderson School of Management
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Hi Alan,
Take a look at the following:
> x < 1:10
> x[length(x)]
[1] 10
> tail(x)
[1] 5 6 7 8 9 10
> tail(x, 1)
[1] 10
See ?tail for more information.
HTH,
Jorge
On Sun, Apr 25, 2010 at 2:10 PM, Alan Lue <> wrote:
> Hi,
>
> Is there a way to specify the last element of a vector, similar to "end" in
> MATLAB?
>
> v[end]
>
> would be MATLAB for
>
> v(length(v))
>
> in R.
>
> While `v(length(v))' does yield the last element, that approach fails in
> the
> following,
>
> rep(v, each=2)[c(1,length(v))]
>
> which is meant to duplicate all elements of `v' except for the first and
> last. (I.e., if `v < 1:4', then we want '1 2 2 3 3 4'.)
>
> So the question is, is there a better way specify the last element of a
> vector? If not, is there a better way to duplicate all elements of a
> vector
> except for the first and last? (I know you can achieve this using two
> lines, but I'm writing because I want to do it using one.)
>
> Alan
>
> 
> Alan Lue
> Master of Financial Engineering
> UCLA Anderson School of Management
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide
> http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
>
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On 4/25/2010 2:10 PM, Alan Lue wrote:
> Hi,
>
> Is there a way to specify the last element of a vector, similar to "end" in
> MATLAB?
>
> v[end]
>
> would be MATLAB for
>
> v(length(v))
>
> in R.
>
> While `v(length(v))' does yield the last element, that approach fails in the
> following,
>
> rep(v, each=2)[c(1,length(v))]
>
> which is meant to duplicate all elements of `v' except for the first and
> last. (I.e., if `v < 1:4', then we want '1 2 2 3 3 4'.)
v < 1:4
rep(v, c(1, rep(2, length(v)  2), 1))
[1] 1 2 2 3 3 4
> So the question is, is there a better way specify the last element of a
> vector? If not, is there a better way to duplicate all elements of a vector
> except for the first and last? (I know you can achieve this using two
> lines, but I'm writing because I want to do it using one.)
>
> Alan

Chuck Cleland, Ph.D.
NDRI, Inc. (www.ndri.org)
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 8454495 (Tu, Th)
tel: (732) 5120171 (M, W, F)
fax: (917) 4380894
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On Apr 25, 2010, at 2:22 PM, Chuck Cleland wrote:
> On 4/25/2010 2:10 PM, Alan Lue wrote:
>> Hi,
>>
>> Is there a way to specify the last element of a vector, similar to
>> "end" in
>> MATLAB?
>>
>> v[end]
>>
>> would be MATLAB for
>>
>> v(length(v))
>>
>> in R.
>>
>> While `v(length(v))' does yield the last element, that approach
>> fails in the
>> following,
>>
>> rep(v, each=2)[c(1,length(v))]
Cleland's example works, but I thought you might be interested in
ideas about why your approach did not. The length of you reped vector
was twice as long as the original so this method, which only adds a
factor of two to the length argument, succeeds:
> rep(v, each=2)[c(1,2*length(v))]
[1] 1 2 2 3 3 4

David.
>>
>> which is meant to duplicate all elements of `v' except for the
>> first and
>> last. (I.e., if `v < 1:4', then we want '1 2 2 3 3 4'.)
>
> v < 1:4
>
> rep(v, c(1, rep(2, length(v)  2), 1))
> [1] 1 2 2 3 3 4
>
>> So the question is, is there a better way specify the last element
>> of a
>> vector? If not, is there a better way to duplicate all elements of
>> a vector
>> except for the first and last? (I know you can achieve this using
>> two
>> lines, but I'm writing because I want to do it using one.)
>>
>> Alan
>
> 
> Chuck Cleland, Ph.D.
> NDRI, Inc. (www.ndri.org)
> 71 West 23rd Street, 8th floor
> New York, NY 10010
> tel: (212) 8454495 (Tu, Th)
> tel: (732) 5120171 (M, W, F)
> fax: (917) 4380894
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
David Winsemius, MD
West Hartford, CT
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Those are great solutions. Thanks so much for your help.
Yours,
Alan
On Sun, Apr 25, 2010 at 11:43 AM, David Winsemius
< [hidden email]> wrote:
>
> On Apr 25, 2010, at 2:22 PM, Chuck Cleland wrote:
>
>> On 4/25/2010 2:10 PM, Alan Lue wrote:
>>>
>>> Hi,
>>>
>>> Is there a way to specify the last element of a vector, similar to "end"
>>> in
>>> MATLAB?
>>>
>>> v[end]
>>>
>>> would be MATLAB for
>>>
>>> v(length(v))
>>>
>>> in R.
>>>
>>> While `v(length(v))' does yield the last element, that approach fails in
>>> the
>>> following,
>>>
>>> rep(v, each=2)[c(1,length(v))]
>
> Cleland's example works, but I thought you might be interested in ideas
> about why your approach did not. The length of you reped vector was twice
> as long as the original so this method, which only adds a factor of two to
> the length argument, succeeds:
>
>> rep(v, each=2)[c(1,2*length(v))]
> [1] 1 2 2 3 3 4
>
> 
> David.
>
>>>
>>> which is meant to duplicate all elements of `v' except for the first and
>>> last. (I.e., if `v < 1:4', then we want '1 2 2 3 3 4'.)
>>
>> v < 1:4
>>
>> rep(v, c(1, rep(2, length(v)  2), 1))
>> [1] 1 2 2 3 3 4
>>
>>> So the question is, is there a better way specify the last element of a
>>> vector? If not, is there a better way to duplicate all elements of a
>>> vector
>>> except for the first and last? (I know you can achieve this using two
>>> lines, but I'm writing because I want to do it using one.)
>>>
>>> Alan
>>
>> 
>> Chuck Cleland, Ph.D.
>> NDRI, Inc. (www.ndri.org)
>> 71 West 23rd Street, 8th floor
>> New York, NY 10010
>> tel: (212) 8454495 (Tu, Th)
>> tel: (732) 5120171 (M, W, F)
>> fax: (917) 4380894
>>
>> ______________________________________________
>> [hidden email] mailing list
>> https://stat.ethz.ch/mailman/listinfo/rhelp>> PLEASE do read the posting guide
>> http://www.Rproject.org/postingguide.html>> and provide commented, minimal, selfcontained, reproducible code.
>
> David Winsemius, MD
> West Hartford, CT
>
>

Alan Lue
Master of Financial Engineering
UCLA Anderson School of Management
______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.

