[BioC] replace a value in a matrix using index
James W. MacDonald
jmacdon at uw.edu
Tue Oct 2 16:00:13 CEST 2012
This question doesn't have anything to do with Bioconductor packages,
and should be posed on R-help. In future, please restrict to
On 10/1/2012 8:17 PM, Mark B wrote:
> I am trying to replace a single numeric value in a matrix with a character
>> mat[5580, 4]
>  838.1
>> mat.r<- replace(mat, mat[5580, 4], "NA")
> I don't get any errors. However when I go to see if the number at mat[5580,
> 4] was replaced with "NA"
> the old number is still there. I don't get any errors.
>> mat.r[5580, 4]
>  838.1
> Any hints on how to do this?
I believe this is covered in an Introduction to R. In addition, the help
for replace says that the first argument should be a vector, so there is
no reason to think this will work the way you have used it. That said,
there are approximately a bazillion ways to do what you want. Three that
readily come to mind are:
> mat <- matrix(rnorm(100), 10)
> is.na(mat[,1]) <- 3
> mat[4,5] <- NA
> mat[,2] <- replace(mat[,2], 5, NA)
Note that you don't want to put an "NA" in a numeric matrix, as this
will coerce the matrix to character. Instead you want an NA.
> [[alternative HTML version deleted]]
> Bioconductor mailing list
> Bioconductor at r-project.org
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
James W. MacDonald, M.S.
University of Washington
Environmental and Occupational Health Sciences
4225 Roosevelt Way NE, # 100
Seattle WA 98105-6099
More information about the Bioconductor