From b@rowling@on @ending from l@nc@@ter@@c@uk  Mon Sep 17 20:08:44 2018
From: b@rowling@on @ending from l@nc@@ter@@c@uk (Barry Rowlingson)
Date: Mon, 17 Sep 2018 19:08:44 +0100
Subject: [Rd] diag(-1) produces weird result
In-Reply-To: <8afc0f794d614405957feb241d04765f@LNXP265MB1290.GBRP265.PROD.OUTLOOK.COM>
References: <C9E6B4F9-DA68-457F-A99A-1D371E4BDE93@revelle.net>
 <8afc0f794d614405957feb241d04765f@LNXP265MB1290.GBRP265.PROD.OUTLOOK.COM>
Message-ID: <CANVKczMh3VTThqh_oaO_RysaW+yoq4d+EUNX4EN4qFSOAHd13w@mail.gmail.com>

On Mon, Sep 17, 2018 at 5:22 PM, G?bor Cs?rdi <csardi.gabor at gmail.com>
wrote:

> I would say it is a mis-feature. If the 'x' argument of diag() is a
> vector of length 1, then it creates an identity matrix of that size,
> instead of creating a 1x1 matrix with the given value:
>
> ? diag(3)
>      [,1] [,2] [,3]
> [1,]    1    0    0
> [2,]    0    1    0
> [3,]    0    0    1
>
> Of course this makes it cumbersome to use diag() in a package, when
> you are not sure if the input vector is longer than 1. This seems to
> be a good workaround:
>
> ? diag(-1, nrow = 1)
>      [,1]
> [1,]   -1
>
> Or, in general if you have vector v:
>
> ? v <- -1
> ? diag(v, nrow = length(v))
>      [,1]
> [1,]   -1
> >
>

Anyone else getting deja-vu with the `sample` function?

 > sample(5:3)
 [1] 3 5 4

ok...

 > sample(5:4)
 [1] 4 5

fine...

 > sample(5:5)
 [1] 3 1 5 2 4

uh oh. Documented, of course.

B

	[[alternative HTML version deleted]]



[Rd] diag(-1) produces weird result
Barry Rowlingson