Re: [R] na.approx and columns with NA's

2007-05-28 Thread Gabor Grothendieck
Without a small reproducible example there is not much to say.
Try cutting the columns down to half successively until you have
an object with 4 columns that exhibits the same behavior and then
do the same with rows until you get a 4x6 example.

Here is another, slightly shorter, solution:

library(zoo)

# test data
z <- zoo(matrix(1:24, 6))
z[,2:3] <- NA
z[1, 2] <- 3
z[2, 1] <- NA
z

# calculate
idx <- colSums(!is.na(z)) > 1
z[,idx] <- na.approx(z[,idx])
z



On 5/28/07, antonio rodriguez <[EMAIL PROTECTED]> wrote:
> Dear Gabor,
>
> In order to perform your suggestion I needed to split my 'big' 720*5551
> matrix into small ones of the type: 720*400 due to memory constraints.
> But after performing the task I get less rows in the new matrix. For
> example:
>
> zz1<-zz[,1:400]
> dim(zz1)
>
> [1] 720 400
>
> zz1[,1]
>
> 1985-01-05 1985-01-13 1985-01-21 1985-01-29 1985-02-06 1985-02-14 1985-02-22
>NA   16.72500   16.5   16.68750   15.9 NA   16.2
> 1985-03-02 1985-03-10 1985-03-18 1985-03-26 1985-04-03 1985-04-11 1985-04-19
>  16.5   16.2   15.9   16.35000   16.27500   16.87500   16.87500
> 
>
> idx <- colSums(!!zz1, na.rm = TRUE) > 1
> zz1[,idx] <- na.approx(zz1[,idx])
> dim(zz1)
>
> [1] 718 400
>
> I've done something similar to your example with random data, but with
> the same number of rows from my original data:
>
> u <- zoo(matrix(rnorm(4320), 6))
> u<-t(u)
>
> dim(u)
> [1] 720 6
>
> u[,2:3] <- NA
> u[1, 2] <- 3
> u[2, 1] <- NA
> idx <- colSums(!!u, na.rm = TRUE) > 1
> u[,idx] <- na.approx(u[,idx])
>
> dim(u)
> [1] 720 6
>
> Don't know what could be happening to my original data.
>
> Best regards
>
> Antonio
>
>
>
> Gabor Grothendieck escribió:
> > na.approx uses approx and has the same behavior as it.  Try this:
> >
> >> library(zoo)
> >>
> >> # test data
> >> z <- zoo(matrix(1:24, 6))
> >> z[,2:3] <- NA
> >> z[1, 2] <- 3
> >> z[2, 1] <- NA
> >> z
> >
> > 1  1  3 NA 19
> > 2 NA NA NA 20
> > 3  3 NA NA 21
> > 4  4 NA NA 22
> > 5  5 NA NA 23
> > 6  6 NA NA 24
> >>
> >> # TRUE for each column that has more than 1 non-NA
> >> idx <- colSums(!!z, na.rm = TRUE) > 1
> >> idx
> > [1]  TRUE FALSE FALSE  TRUE
> >>
> >> z[,idx] <- na.approx(z[,idx])
> >> z
> >
> > 1 1  3 NA 19
> > 2 2 NA NA 20
> > 3 3 NA NA 21
> > 4 4 NA NA 22
> > 5 5 NA NA 23
> > 6 6 NA NA 24
> >
> >
> > On 5/27/07, antonio rodriguez <[EMAIL PROTECTED]> wrote:
> >> Hi,
> >>
> >> I have a object 'zoo':
> >>
> >> dim(zz)
> >> [1]  720 5551
> >>
> >> where some columns only have NA's values (representing land data in a
> >> sea surface temperature dataset) I find straightforward the use of
> >> 'na.approx' for individual columns from the zz matrix, but when applied
> >> to the whole matrix:
> >>
> >> zz.approx<-na.approx(zz)
> >> Erro en approx(along[!na], y[!na], along[na], ...) :
> >>need at least two non-NA values to interpolate
> >>
> >> The message is clear, but how do I could skip those 'full-NA's' columns
> >> from the interpolation in order to perform the analysis over the columns
> >> which represent actual data with some NA's values
> >>
> >> Best regards,
> >>
> >> Antonio
> >>
> >> --
> >> =
> >> Por favor, si me mandas correos con copia a varias personas,
> >> pon mi dirección de correo en copia oculta (CCO), para evitar
> >> que acabe en montones de sitios, eliminando mi privacidad,
> >> favoreciendo la propagación de virus y la proliferación del SPAM.
> >> Gracias.
> >> -
> >> If you send me e-mail which has also been sent to several other people,
> >> kindly mark my address as blind-carbon-copy (or BCC), to avoid its
> >> distribution, which affects my privacy, increases the likelihood of
> >> spreading viruses, and leads to more SPAM. Thanks.
> >> =
> >> Antes de imprimir este e-mail piense bien si es necesario hacerlo: El
> >> medioambiente es cosa de todos.
> >> Before printing this email, assess if it is really needed.
> >>
> >> __
> >> R-help@stat.math.ethz.ch mailing list
> >> 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.
> >>
> >
>
>
> --
> =
> Por favor, si me mandas correos con copia a varias personas,
> pon mi dirección de correo en copia oculta (CCO), para evitar
> que acabe en montones de sitios, eliminando mi privacidad,
> favoreciendo la propagación de virus y la proliferación del SPAM. Gracias.
> -
> If you send me e-mail which has also been sent to several other people,
> kindly mark my address as blind-carbon-copy (or BCC), to avoid its
> distribution, which affects my privacy, increases the likelihood of
> spreading viruses, and leads to more SPAM. Thanks.
> =
> Antes de imprimir este e-mail piense bien si es nec

Re: [R] na.approx and columns with NA's

2007-05-28 Thread antonio rodriguez
Dear Gabor,

In order to perform your suggestion I needed to split my 'big' 720*5551 
matrix into small ones of the type: 720*400 due to memory constraints. 
But after performing the task I get less rows in the new matrix. For 
example:

zz1<-zz[,1:400]
dim(zz1)

[1] 720 400

zz1[,1]

1985-01-05 1985-01-13 1985-01-21 1985-01-29 1985-02-06 1985-02-14 1985-02-22
NA   16.72500   16.5   16.68750   15.9 NA   16.2
1985-03-02 1985-03-10 1985-03-18 1985-03-26 1985-04-03 1985-04-11 1985-04-19
  16.5   16.2   15.9   16.35000   16.27500   16.87500   16.87500


idx <- colSums(!!zz1, na.rm = TRUE) > 1
zz1[,idx] <- na.approx(zz1[,idx])
dim(zz1)

[1] 718 400

I've done something similar to your example with random data, but with 
the same number of rows from my original data:

u <- zoo(matrix(rnorm(4320), 6))
u<-t(u)

dim(u)
[1] 720 6

u[,2:3] <- NA
u[1, 2] <- 3
u[2, 1] <- NA  
idx <- colSums(!!u, na.rm = TRUE) > 1
u[,idx] <- na.approx(u[,idx])

dim(u)
[1] 720 6

Don't know what could be happening to my original data.

Best regards

Antonio



Gabor Grothendieck escribió:
> na.approx uses approx and has the same behavior as it.  Try this:
>
>> library(zoo)
>>
>> # test data
>> z <- zoo(matrix(1:24, 6))
>> z[,2:3] <- NA
>> z[1, 2] <- 3
>> z[2, 1] <- NA
>> z
>
> 1  1  3 NA 19
> 2 NA NA NA 20
> 3  3 NA NA 21
> 4  4 NA NA 22
> 5  5 NA NA 23
> 6  6 NA NA 24
>>
>> # TRUE for each column that has more than 1 non-NA
>> idx <- colSums(!!z, na.rm = TRUE) > 1
>> idx
> [1]  TRUE FALSE FALSE  TRUE
>>
>> z[,idx] <- na.approx(z[,idx])
>> z
>
> 1 1  3 NA 19
> 2 2 NA NA 20
> 3 3 NA NA 21
> 4 4 NA NA 22
> 5 5 NA NA 23
> 6 6 NA NA 24
>
>
> On 5/27/07, antonio rodriguez <[EMAIL PROTECTED]> wrote:
>> Hi,
>>
>> I have a object 'zoo':
>>
>> dim(zz)
>> [1]  720 5551
>>
>> where some columns only have NA's values (representing land data in a
>> sea surface temperature dataset) I find straightforward the use of
>> 'na.approx' for individual columns from the zz matrix, but when applied
>> to the whole matrix:
>>
>> zz.approx<-na.approx(zz)
>> Erro en approx(along[!na], y[!na], along[na], ...) :
>>need at least two non-NA values to interpolate
>>
>> The message is clear, but how do I could skip those 'full-NA's' columns
>> from the interpolation in order to perform the analysis over the columns
>> which represent actual data with some NA's values
>>
>> Best regards,
>>
>> Antonio
>>
>> -- 
>> =
>> Por favor, si me mandas correos con copia a varias personas,
>> pon mi dirección de correo en copia oculta (CCO), para evitar
>> que acabe en montones de sitios, eliminando mi privacidad,
>> favoreciendo la propagación de virus y la proliferación del SPAM. 
>> Gracias.
>> -
>> If you send me e-mail which has also been sent to several other people,
>> kindly mark my address as blind-carbon-copy (or BCC), to avoid its
>> distribution, which affects my privacy, increases the likelihood of
>> spreading viruses, and leads to more SPAM. Thanks.
>> =
>> Antes de imprimir este e-mail piense bien si es necesario hacerlo: El 
>> medioambiente es cosa de todos.
>> Before printing this email, assess if it is really needed.
>>
>> __
>> R-help@stat.math.ethz.ch mailing list
>> 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.
>>
>


-- 
=
Por favor, si me mandas correos con copia a varias personas, 
pon mi dirección de correo en copia oculta (CCO), para evitar 
que acabe en montones de sitios, eliminando mi privacidad, 
favoreciendo la propagación de virus y la proliferación del SPAM. Gracias.
-
If you send me e-mail which has also been sent to several other people,
kindly mark my address as blind-carbon-copy (or BCC), to avoid its
distribution, which affects my privacy, increases the likelihood of
spreading viruses, and leads to more SPAM. Thanks.
=
Antes de imprimir este e-mail piense bien si es necesario hacerlo: El 
medioambiente es cosa de todos.
Before printing this email, assess if it is really needed.

__
R-help@stat.math.ethz.ch mailing list
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.


Re: [R] na.approx and columns with NA's

2007-05-27 Thread Gabor Grothendieck
na.approx uses approx and has the same behavior as it.  Try this:

> library(zoo)
>
> # test data
> z <- zoo(matrix(1:24, 6))
> z[,2:3] <- NA
> z[1, 2] <- 3
> z[2, 1] <- NA
> z

1  1  3 NA 19
2 NA NA NA 20
3  3 NA NA 21
4  4 NA NA 22
5  5 NA NA 23
6  6 NA NA 24
>
> # TRUE for each column that has more than 1 non-NA
> idx <- colSums(!!z, na.rm = TRUE) > 1
> idx
[1]  TRUE FALSE FALSE  TRUE
>
> z[,idx] <- na.approx(z[,idx])
> z

1 1  3 NA 19
2 2 NA NA 20
3 3 NA NA 21
4 4 NA NA 22
5 5 NA NA 23
6 6 NA NA 24


On 5/27/07, antonio rodriguez <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I have a object 'zoo':
>
> dim(zz)
> [1]  720 5551
>
> where some columns only have NA's values (representing land data in a
> sea surface temperature dataset) I find straightforward the use of
> 'na.approx' for individual columns from the zz matrix, but when applied
> to the whole matrix:
>
> zz.approx<-na.approx(zz)
> Erro en approx(along[!na], y[!na], along[na], ...) :
>need at least two non-NA values to interpolate
>
> The message is clear, but how do I could skip those 'full-NA's' columns
> from the interpolation in order to perform the analysis over the columns
> which represent actual data with some NA's values
>
> Best regards,
>
> Antonio
>
> --
> =
> Por favor, si me mandas correos con copia a varias personas,
> pon mi dirección de correo en copia oculta (CCO), para evitar
> que acabe en montones de sitios, eliminando mi privacidad,
> favoreciendo la propagación de virus y la proliferación del SPAM. Gracias.
> -
> If you send me e-mail which has also been sent to several other people,
> kindly mark my address as blind-carbon-copy (or BCC), to avoid its
> distribution, which affects my privacy, increases the likelihood of
> spreading viruses, and leads to more SPAM. Thanks.
> =
> Antes de imprimir este e-mail piense bien si es necesario hacerlo: El 
> medioambiente es cosa de todos.
> Before printing this email, assess if it is really needed.
>
> __
> R-help@stat.math.ethz.ch mailing list
> 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.
>

__
R-help@stat.math.ethz.ch mailing list
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.