[R] replace NULL with NA in matrix
Marc Schwartz
marc_schwartz at comcast.net
Thu Apr 17 15:38:31 CEST 2008
Tim Smith wrote:
> Hi,
>
> I had a matrix with NULL values, which I wanted to replace with NA. Is there an efficient way to do this?
>
> Small sample input matrix:
> A B C D E
> 1 5222.18 6355.10 4392.68 2607.41 4524.09
> 2 NULL 257.33 NULL 161.51 119.44
> 3 NULL 274.80 305.28 443.27 NULL
> 4 1759.76 1556.45 1224.06 1558.73 1837.09
>
>
> Tim
If you are reading this in from a text file, you can use:
mat <- as.matrix(read.table(YourFileName, header = TRUE,
na.strings = "NULL"))
See the 'na.strings' argument in ?read.table
Note that by default, this will be read in as a data frame, not a
matrix, so I added the extra coercion. The difference is quite important.
The above should yield:
> mat
A B C D E
1 5222.18 6355.10 4392.68 2607.41 4524.09
2 NA 257.33 NA 161.51 119.44
3 NA 274.80 305.28 443.27 NA
4 1759.76 1556.45 1224.06 1558.73 1837.09
> str(mat)
num [1:4, 1:5] 5222 NA NA 1760 6355 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:4] "1" "2" "3" "4"
..$ : chr [1:5] "A" "B" "C" "D" ...
HTH,
Marc Schwartz
More information about the R-help
mailing list