Displaying 20 results from an estimated 10000 matches similar to: "RFC: diag(x, n) not preserving integer and logical x"
2014 Aug 11
0
diag(x, n) not preserving integer and logical x
Martin Maechler wrote:
> diag(x) preserves the storage mode of x for 'complex' and
> 'double' precision, but converts integer and logicals to double :
Duncan Murdoch wrote:
> I think the change to preserve integer makes sense, but preserving
> logical does not. A diagonal matrix has zeros off the diagonal, and
> they are not logical. Having diag() sometimes
2003 Sep 17
2
possible bug in diag()
It concerns trival diagonal matrices:
> diag(1)
[,1]
[1,] 1
> diag(rnorm(1))
<0 x 0 matrix>
> diag(rnorm(1),nrow=1)
[,1]
[1,] 0.4843697
There's an obvious work around... but I thought it was worth notifying the
list.
Regards,
John Marsland
**********************************************************************
This is a commercial communication from
2013 Apr 09
2
Behaviors of diag() with character vector in R 3.0.0
Dear all,
According to CHANGES IN R 3.0.0:
o diag() as used to generate a diagonal matrix has been re-written
in C for speed and less memory usage. It now forces the result
to be numeric in the case diag(x) since it is said to have 'zero
off-diagonal entries'.
diag(x) does not work for character vector in R 3.0.0 any more. For example,
v <- c("a",
2000 May 25
1
diag() (PR#555)
Full_Name: David Duffy
Version: 1.0.1
OS: Linux
Submission from: (NULL) (152.98.96.21)
Documentation for diag() states that "If x is a vector (or a
1-d array) then diag(x) returns a diagonal matrix whose diagonal
is x."
> m<-matrix(1:4,ncol=1)
> diag(m)
[1] 1
diag(as.vector(m)) gives the advertised performance.
Fix: Change documentation.
2024 Dec 04
3
Undocumented behaviour of diag when replacing the diagonal of a matrix?
Dear list,
is anyone aware of the following behavious of diag when used to replace
diagonals (plural!) of a matrix?
Small example: The following is documented and clearly to be expected:
A <- matrix(0, nrow = 5, ncol = 5)
diag(A) <- 1; A
BUT, what about the following? When executing the code of `diag<-` line
by line, it throws errors. So why does it work?
diag(A[-1, ]) <- 2; A
2013 May 01
1
diag() when input is a numeric scalar
Hi All,
I'm wondering why when passing a single numeric value that contains any
decimals to diag() that the value is silently coerced to a integer for
constructing an identify matrix. To me, an input like diag(5.435) seems
fairly ambiguous and is more than likely a programming mistake, since it's
not obvious that a 5x5 identity matrix should be created. I've seen some
code where other
1998 Sep 09
2
diag() losing dimnames
Using diag() to extract the diagonal of a matrix loses all but the first dimname
(R 0.62.3). The problem seems to be in [ ]:
>
> x <- matrix(1:9,3,3)
> dimnames(x) <- list(c("a", "b", "c"), c("a", "b", "c"))
> x
a b c
a 1 4 7
b 2 5 8
c 3 6 9
> diag(x)
a NA NA
1 5 9
> x[c(1,5,9)]
a NA NA
1 5 9
>
Paul
2005 Oct 19
3
diag() problem
Hi
I have a matrix "u", for which diag() gives an error:
u <- structure(c(5.42334674128216, -2.31319389204264, -5.83059042218476,
-1.64112369640695, -2.31319389212801, 3.22737617646609,
1.85200668021569,
-0.57102273078531, -5.83059042231881, 1.85200668008156,
11.9488923894962,
-3.5525537165941, -1.64112369587405, -0.571022730886046,
-3.55255371755604,
2015 May 13
1
Why is the diag function so slow (for extraction)?
> From: Martin Maechler <maechler at lynne.stat.math.ethz.ch>
> diag() should not work only for pure matrices, but for all
> "matrix-like" objects for which ``the usual methods'' work, such
> as
> as.vector(.), c(.)
>
> That's why there has been the c(.) in there.
>
> You can always make code faster if you write the code so it only
>
2004 Jan 12
1
Matrix indexes
Two questions about matrix indexing:
Is is correct that V <- V[lower.tri(V, diag=TRUE)] returns the lower
triangular of matrix V, that is: all elements above diagonal are set to zero? I
understand that the triangle of matrix elements of V for which lower.tri is
TRUE are returned while the others (above diagonal) are set to zero (or NA ???).
If D and B are vectors of logicals,
what
2011 Jul 02
1
Error when using plot in diag.panel argument of pairs
Dear Madame or Sir,I am having a problem in combining density-smoothed scatterplot matrices with a plot of kernel destiny estimations of each dimension plotted on the respective field of the diagonal.I have tried following approach using the package "sm" for the kernel density estimation, as well as "MASS" respectively:pairs(myTable[, 1:4],panel=function(x,y, ...){
2010 Jan 07
1
"diag", "diag<-" and "[" , "[<-"
Dear all
I have the following problem.
M <- matrix(0,3,3) # dimension of M is dinamic and this can lead to the
next subscript
diag(M[1,1]) <- rep(100,1)
#Error in `diag<-`(`*tmp*`, value = 100) :
# only matrix diagonals can be replaced
diag(M[1,1,drop=F]) <- rep(100,1)
#Error in diag(M[1, 1, drop = F]) <- rep(100, 1) :
# incorrect number of subscripts
diag(M[2:3,1:2]) <-
2006 Oct 03
4
how ot replace the diagonal of a matrix
Dear useRs,
Trying to replace the diagonal of a matrix is not working for me. I
want a matrix with .6 on the diag and .4 elsewhere. The following
code looks like it should work--when I lookk at mps and idx they look
how I want them too--but it only replaces the first element, not each
element on the diagonal.
mps <- matrix(rep(.4, 3*3), nrow=n, byrow=TRUE)
idx <- diag(3)
mps
idx
mps[idx]
2009 Aug 26
1
Problem with standard generic methods in Matrix package
I have posted this message on r-lang, but it is perhaps more appropriate
on r-devel:
---
Hello,
I'm puzzled by a problem with call to diag(), rowSums(), rownames() on
objects of class "dgtMatrix", created by sparseMatrix() or spMatrix().
I use Matrix 0.999375-30.
The weird thing is that I don't encounter any problem when I use this
functions on the R prompt, or
2004 Oct 01
2
multiple dimensional diag()
Hi
I have two arbitrarily dimensioned arrays, "a" and "b", with
length(dim(a))==length(dim(b)). I want to form a sort of
"corner-to-corner" version of abind(), or a multidimensional version
of blockdiag().
In the case of matrices, the function is easy to write and if
a=matrix(1,3,4) and b=matrix(2,2,2), then adiag(a,b) would return:
[,1] [,2] [,3] [,4] [,5]
2007 Oct 10
3
as.dist with diagonal unequal zero
Hello and sorry that I still haven?t found a solution for my problem.
I need to extract the lower and upper triangle from a square matrix
including the diagonal. This diagonal is not zero in that special case.
I tried with as.dist
w<-as.dist(w, diag = TRUE)
> w
1 2 3 4 5
1 0
2 2 0
3 3 8 0
4 4 9 14 0
5 5 10 15 20 0
but found no way to keep the diagonal that is in the
2003 Oct 01
4
Solving a tridiagonal system
I need to find solutions to a tridiagonal system. By
this I mean a set of linear equations Ax = d where A
is a square matrix containing elements A[i,i-1],
A[i,i] and A[i,i+1] for i in 1:nrow, and zero
elsewhere. R is probably not the ideal way to do this,
but this is part of a larger problem that requires R.
In my application it is much easier (and much faster)
to generate the diagonal and
2005 Mar 31
4
NA's?
Your message doesn't help us very much. You haven't said what kind of
calculation it is you want to do, and that certainly matters. For
example, for some kinds of computations the solution you started below
would work fine:
> M <- matrix(1:16, 4, 4)
> is.na(diag(M)) <- TRUE
> M
[,1] [,2] [,3] [,4]
[1,] NA 5 9 13
[2,] 2 NA 10 14
[3,] 3 7 NA
2009 Mar 11
3
Matrix Construction; Subdiagonal
I'm trying to enter a vector into the subdiagonal of a matrix but
cannot find a command in R which corresponds to the MatLab version of
diag(vec, k), where vec = the vector of interest, and k = the diagonal
(k=0 for the diagonal; k=-1 for the subdiagonal; k=1 for
superdiagonal, etc.)
Is there an equivalent command in R?
I'm looking for something like this:
vec = seq(1, 5, 1)
2006 Jan 28
1
Complex Matrix Exponentials.
Hello,
I was curious if there was a complex valued matrix exponential function
available for R? I have some Laplace transforms of occupation times
for a hidden Markov model. The matrix exponential function in the msm
package does not seem to handle complex values. For example
> MatrixExp(diag(1i,2))
[,1] [,2]
[1,] 1 0
[2,] 0 1
Warning message:
imaginary parts