Hola Olivier, podrias explicarme como los argumentos que pones dentro
de diff() evitan que se genere el NA de la primera celda de col2, por
favor ... quisiera aplicarlo a otra situacion pero no entiendo bien
como funciona.

Muchas gracias,

Eric.







On 3/12/15, Olivier Nuñez <[email protected]> wrote:
> Par evitar el warning....
>
>> DT=data.table(col1=1:10)
>> DT[,col2:=diff(log(c(1,col1)))]
>> DT
>     col1      col2
>  1:    1 0.0000000
>  2:    2 0.6931472
>  3:    3 0.4054651
>  4:    4 0.2876821
>  5:    5 0.2231436
>  6:    6 0.1823216
>  7:    7 0.1541507
>  8:    8 0.1335314
>  9:    9 0.1177830
> 10:   10 0.1053605
>>
>
>
> ----- Mensaje original -----
> De: "Carlos Ortega" <[email protected]>
> Para: "Eric" <[email protected]>
> CC: [email protected]
> Enviados: Miércoles, 11 de Marzo 2015 15:19:07
> Asunto: Re: [R-es] como hacer una operacion con data.table
>
> Hola,
>
> Así sería una forma...
>
> #----------------
>> library(data.table)
>> DT <- data.table(x=seq(1:20))
>> DT[ 2:nrow(DT), col2 := diff(log(x)) ]
> Mensajes de aviso perdidos
> In `[.data.table`(DT, 2:nrow(DT), `:=`(col2, diff(log(x)))) :
>   Supplied 18 items to be assigned to 19 items of column 'col2' (recycled
> leaving remainder of 1 items).
>> head(DT)
>    x      col2
> 1: 1        NA
> 2: 2 0.4054651
> 3: 3 0.2876821
> 4: 4 0.2231436
> 5: 5 0.1823216
> 6: 6 0.1541507
>> log(2) - log(1)
> [1] 0.6931472
>> log(3) - log(2)
> [1] 0.4054651
>
> #----------------
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 10 de marzo de 2015, 23:48, Eric <[email protected]> escribió:
>
>> estimados, siempre habia usado data.frame, pero estoy tratando de
>> aprender
>> a usar data.table porque normalmente tengo que manejar una buena cantidad
>> de datos
>>
>> ahora necesito hacer un calculo simple, para el que antes usaba ciclos
>> FOR,
>> pero quiero aprovechar las ventajas de data.table
>>
>> mi preguna es como podria calcular, por ejemplo, la columna 2 de un
>> data.table llamada DT si el valor de la primera columna es una serie de 1
>> a
>> 10, y la celda de la fila m de la segunda columna es igual al valor de la
>> celda m de la primera columna menos la celda m-1 de la primera columna.
>>
>> me explico ??
>>
>> si fuera un ciclo con data.frame lo haria asi:
>>
>>           i <- 2
>>           for (i in 2:nrow(DT))
>>           {
>>             DT[i,col2] <- log(DT[i,col1]) - log(DT[i-1,col1])
>>             i <- i + 1
>>           }
>>
>> No escribi toda la nomenclatura pero se entiende la idea, cierto ?
>>
>> Espero me den una mano como siempre.
>>
>> Muchas gracias !!!!!
>>
>>
>>
>>
>>
>> --
>> Nota: las tildes se han omitido para evitar conflictos con algunos
>> lectores
>> de correo.
>>
>> Frases notables:
>> * SATYÂT NÂSTI PARO DHARMAH (No hay religion mas elevada que la verdad)
>> * La oscuridad no se combate, se ilumina ...
>> * Un economista es un experto que sabrá mañana por qué las cosas que
>> predijo
>> ayer no han sucedido hoy (Laurence Peter).
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> [email protected]
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>       [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> [email protected]
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Nota: las tildes se han omitido para evitar conflictos con algunos lectores
de correo.

Frases notables:
* SATYÂT NÂSTI PARO DHARMAH (No hay religion mas elevada que la verdad)
* La oscuridad no se combate, se ilumina ...
* Un economista es un experto que sabrá mañana por qué las cosas que predijo
ayer no han sucedido hoy (Laurence Peter).

_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a