[R] replace zero in a matrix using random numbers

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Fri Jan 8 23:49:12 CET 2021


?rnorm tells you that n, the first argument, is the number of
observations/random numbers you wish to generate. You asked for 1.
So you need to ask for the number of 0's, something like:

> a <- matrix(rep(0:1, 3), nrow =3)
> a
     [,1] [,2]
[1,]    0    1
[2,]    1    0
[3,]    0    1
> a[!a] <- rnorm(sum(!a), 1,.1)
> a
          [,1]     [,2]
[1,] 0.8136788 1.000000
[2,] 1.0000000 1.146225
[3,] 0.9081908 1.000000

Bert


Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Fri, Jan 8, 2021 at 2:33 PM Yuan Chun Ding <ycding using coh.org> wrote:

> Hi R users,
>
> I am analyzing miRNA sequence data for a special network analysis, I need
> to replace zero values in a matrix as random numbers with mean of 1 and
> standard deviation of 0.1.
>
> er.miRCounts[er.miRCounts==0] <- rnorm(1,mean=1, sd=0.1);
>
> this code made all zero values as 1.13, not random numbers across
> different zero values.  If all zero values in one row are replaced by the
> same 1.13,  then sd in that row is zero, causing other problem in the
> following calculation.
>
> Can you help me?
>
> Thank you,
>
> Yuan chun Ding
>
> ----------------------------------------------------------------------
> ------------------------------------------------------------
> -SECURITY/CONFIDENTIALITY WARNING-
>
> This message and any attachments are intended solely for the individual or
> entity to which they are addressed. This communication may contain
> information that is privileged, confidential, or exempt from disclosure
> under applicable law (e.g., personal health information, research data,
> financial information). Because this e-mail has been sent without
> encryption, individuals other than the intended recipient may be able to
> view the information, forward it to others or tamper with the information
> without the knowledge or consent of the sender. If you are not the intended
> recipient, or the employee or person responsible for delivering the message
> to the intended recipient, any dissemination, distribution or copying of
> the communication is strictly prohibited. If you received the communication
> in error, please notify the sender immediately by replying to this message
> and deleting the message and any accompanying files from your system. If,
> due to the security risks, you do not wish to receive further
> communications via e-mail, please reply to this message and inform the
> sender that you do not wish to receive further e-mail from the sender.
> (LCP301)
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list