Displaying 20 results from an estimated 2000 matches similar to: "how to divide each column in a matrix by its colSums?"
2007 Apr 16
1
colSum() in Matrix objects
Hi,
I'd like to simply add column-wise using Matrix objects (Csparse).
It looks like one can apply mosty any base function to these objects
(i.e., apply, colSums), but there is a nasty conversion to traditional
matrix objects if one does that.
Is there any workaround? I can see colSum listed in the help for Class
'CsparseMatrix' , but I wonder whether I'm using the default
2005 Apr 21
1
colSums and rowSums with arrays - different classes and dim ?
Hi,
I'm using colSums and rowSums to sum the first dimensions of arrays. It
works ok but the resulting object is different. See
> a3d <- array(rnorm(120, mean=2), dim=c(20,6,1))
> dim(colSums(a3d))
[1] 6 1
> dim(rowSums(a3d))
NULL
> class(colSums(a3d))
[1] "matrix"
> class(rowSums(a3d))
[1] "numeric"
I was expecting rowSums to preserve the array
2002 Jan 07
0
New package: colSums
I've uploaded a package colSums_1.0.tar.gz to CRAN /src/contrib/Devel. It
contains functions colSums, colMeans, colVars, colStdevs, rowSums, rowMeans,
rowVars, and rowStdevs. These do simple, fast arithmetic on columns/rows of a
matrix, or more generally across dimensions of an array, e.g. colSums(m) =
apply(m, 2, sum) but faster. They should be compatible with the corresponding
S-Plus
2001 Dec 14
2
colSums in C
Hi, all!
My project today is to write a speedy colSums(), which is a function
available in S-Plus to add the columns of a matrix. Here are 4 ways to do it,
with the time it took (elapsed, best of 3 trials) in both R and S-Plus:
m <- matrix(1, 400, 40000)
x1 <- apply(m, 2, sum) ## R=16.55 S=52.39
x2 <- as.vector(rep(1,nrow(m)) %*% m) ## R= 2.39 S= 8.52
x3 <-
2001 Jul 18
1
colSums
As best I understand it, colSums (and associated functions) in S+ 6 are
optimized functions (calling special C routines) for doing simple matrix
math. For example, it seems like (in S+):
all.equal(colSums(m), apply(m, 2, sum))
should be TRUE for any matrix m. It also seems like colSums (and its brethren)
are very fast.
My question: Are there equivalents to colSums in R?
Thanks,
Dave Kane
2003 Feb 13
1
colSums etc. documentation (PR#2545)
For your consideration:
> z
[,1] [,2]
[1,] 1 NA
[2,] 2 NA
[3,] 3 NA
> colSums(z)
[1] 6 NA
Correct, according to the documentation
> colSums(z,na.rm=T)
[1] 6 0
Surprising to me, but, as documented, correctly consistent with apply() and
>sum(NULL)
[1] 0
The documentation for sum() explicitly notes that the sum of an empty set is
0 by definition, so that users
2009 Nov 30
2
command similar to colSums for rowSums?
Working with an NxMxO sized matrix, currently I can do this in my code:
if (max(colSums(array)) >= number)
But to get an equivalent result using rowSums, I have to do:
for (i in 1:10)
{
if (max(rowSums(array[,,i])) >= number)
}
I'm running both in a much larger loop that loops millions of times, so
speed and such is quite a big factor for me. Currently, the colSums line
uses about
2009 Dec 24
3
Newbie: colSums() compared with Matlab's sum()
Hi all,
I'm trying to learn R after years of Matlab's experience. Here is an
issue I couldn't solve today.
Consider the following piece of code (written by memory):
for(i in 1:n){
submat <- data[1:i,]
C <- colSums(submat)
}
The problem is that at the first iteration, data[1:1,] reduces to a
vector and colSums returns an error. This sounds really strange to me
2003 Sep 14
1
Documentation of colSums et. al (PR#4154)
Full_Name: Doug Grove
Version: 1.7.0
OS: Linux
Submission from: (NULL) (209.31.211.56)
Hi,
Minor mistake in the documentation on the colSums page.
In the ARGUMENTS section it states for 'dims' that:
For `col*', the sum or mean is over dimensions
`dims+1, ...'; for `row*' it is over dimensions `1:dims'.
These two are reversed.
Thanks,
Doug Grove
2011 Aug 14
3
Not sure how to use aggregate, colSums, by
I have a data frame called test shown below that i would like to summarize in
a particular way :
I want to show the column sums (columns y ,f) grouped by country (column
e1). However, I'm looking for the data to be split according to column e2.
In other words, two tables of sum by country. One table for "con" and one
table for "std" shown in column e2. Finally at the
Assigning NULL to large variables is much faster than rm() - any reason why I should still use rm()?
2013 May 25
2
Assigning NULL to large variables is much faster than rm() - any reason why I should still use rm()?
Hi,
in my packages/functions/code I tend to remove large temporary
variables as soon as possible, e.g. large intermediate vectors used in
iterations. I sometimes also have the habit of doing this to make it
explicit in the source code when a temporary object is no longer
needed. However, I did notice that this can add a noticeable overhead
when the rest of the iteration step does not take that
2006 Nov 14
3
Creating a table
Dear R List,
I am a new to R, so my question may be easy to answer for you:
I have a dataframe, for example:
df<-data.frame(loc=c("A","B","A","A","A"),
year=as.numeric(c("1970","1970","1970","1976","1980")))
and I want to create the following table without using loops:
1970-74 ;
2003 Dec 30
1
Accuracy: Correct sums in rowSums(), colSums() (PR#6196)
Full_Name: Nick Efthymiou
Version: R1.5.0 and above
OS: Red Hat Linux
Submission from: (NULL) (162.93.14.73)
With the introduction of the functions rowSums(), colSums(), rowMeans() and
colMeans() in R1.5.0, function "SEXP do_colsum(SEXP call, SEXP op, SEXP args,
SEXP rho)" was added to perform the fast summations. We have an excellent
opportunity to improve the accuracy by
2012 May 16
3
triangular matrices input/output
Hi,
Is there any package that deals with triangular matrices?
Say ways of inputting an upper (lower) triangular matrix?
Or convert a vector of length 6 to an upper (lower) triangular matrix (by
row/column)?
Thanks!
-----
######################
PhD candidate in Statistics
Big R Fan
Big LEGO Fan
Big sTaTs Fan
######################
--
View this message in context:
2008 Mar 07
4
Warning: matrix by vector division
Dear list,
I just made a very simple mistake, but it was hard to spot. And I
think that I should warn other people, because it is probably so
simple to make...
=== R code ===
# Let us create a matrix:
(a <- cbind(c(0,1,1), rep(1,3)))
# [,1] [,2]
# [1,] 0 1
# [2,] 1 1
# [3,] 1 1
# That is a MISTAKE:
a/colSums(a)
# [,1] [,2]
# [1,] 0.0000000 0.3333333
2002 Sep 18
2
No subject
--============_-1179735293==_ma============
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
To: r-help-request@lists.R-project.org
From: "Dr. Chris Wills" <cwills@ucsd.edu>
Subject: Questions about sorting and functions
Cc:
Bcc:
X-Attachments:
Dear R-Gang -
Two questions for you:
1) I cannot figure out how to sort one column in an array,
and
2011 Sep 11
2
how to quote "factors" in a function?
### code ###
x=sample(LETTERS[1:26],100,T)
prob=function(y){
count=sum(x==y)
total=length(x)
count/total
}
### end ###
How do I quote the letters A,B,C,D ect, in order to make the "prob" function
return the weights of the desired Letter?
Thanks!
--
View this message in context:
2010 Dec 18
3
use of 'apply' for 'hist'
Hi all,
##########################################
dof=c(1,2,4,8,16,32)
Q5=matrix(rt(100,dof),100,6,T,dimnames=list(NULL,dof))
par(mfrow=c(2,6))
apply(Q5,2,hist)
myf=function(x){ qqnorm(x);qqline(x) }
apply(Q5,2,myf)
##########################################
These looks ok.
However, I would like to achieve more.
Apart from using a loop,
is there are fast way to 'add' the titles to be
2010 Nov 08
3
how do i plot this "hist"?
Hi all,
I have the following data in abc.dat
=======================
50 0 1 0 0
55 1 14 0 1
60 7 86 0 3
65 22 324 2 3
70 58 1035 1 7
75 30 2568 0 34
80 9 2936 15 162
85 27 2169 46 365
90 80 1439 212 432
95 236 1670 521 281
100 332 827 709 172
105 156 311 556
2010 Mar 07
3
barplot with factors problem
http://www.harding.edu/fmccown/R/#autosdatafile
http://www.harding.edu/fmccown/R/#autosdatafile
I am tring to get a barchat by factors,
following the example in that link above.
===========================
x=c(145,40,40,120,180,
140,155,90,160,95,
195,150,205,110,160,
45,40,195,65,145,
195,230,115,235,225,
120,55,50,80,45
)
y2=c(
rep(as.character(1),5),
rep(as.character(2),5),