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" <c...@qualityexcellence.es> Para: "Eric" <ericconchamu...@gmail.com> CC: r-help-es@r-project.org 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 <ericconchamu...@gmail.com> 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 > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es