[R-es] Insertar filas en un data frame

Olivier Nuñez onunez en iberstat.es
Mie Oct 28 09:41:01 CET 2009


me parece que tu problema se reduce a un par de paréntesis.
Sustituye esta linea

Data <- rbind(Data[1:i,],Data[i,],Data[i+1:length(Data$DV),])

por

Data <- rbind(Data[1:i,],Data[i,],Data[(i+1):length(Data$DV),])

Un saludo. Olivier

--   
____________________________________

Olivier G. Nuñez
Email: onunez en iberstat.es
Tel : +34 663 03 69 09
Web: http://www.iberstat.es

____________________________________




El 28/10/2009, a las 8:59, <guivivi en alumni.uv.es>  
<guivivi en alumni.uv.es> escribió:

> Hola,
>
> Por favor, necesito insertar una fila debajo de las filas que  
> tengan DV
> distinto de cero, pero no me deja insertar hasta el final de la tabla.
> Esta es mi tabla y este es el código con el que estoy apurado.
>
> C ID TIME DV AMT RATE CMT SS II EVID GRUPO VISITA DOSIS VECES FORMA  
> NAP
> EDAD SEXO ALTURA PESO
>  11 0 0 3 0 1 1 12 1 3 0 3 2 1 0 77 2 147 74
>  11 1.417 0.001 0 0 2 0 0 0 3 0 3 2 1 0.001 77 2 147 74
>  11 0 0 9.6 -2 2 1 24 4 2 2 9.6 1 2 0 77 2 147 74
>  11 2.5 8.69 0 0 2 0 0 0 2 2 9.6 1 2 2.2 77 2 147 74
>  11 0 0 9.6 -2 2 1 24 4 2 3 9.6 1 2 0 77 2 147 74
>  11 2.667 17.49 0 0 2 0 0 0 2 3 9.6 1 2 3.14 77 2 147 74
>  12 0 0 6 0 1 1 12 1 3 0 6 2 1 0 72 1 160 71
>  12 15.417 1.61 0 0 2 0 0 0 3 0 6 2 1 2.03 72 1 160 71
>  12 0 0 6 0 1 1 12 4 3 2 6 2 1 0 72 1 160 71
>  12 0.917 28.39 0 0 2 0 0 0 3 2 6 2 1 4.79 72 1 160 71
>  12 0 0 6 0 1 1 12 4 3 3 6 2 1 0 72 1 160 71
>  12 -8758.75 51.45 0 0 2 0 0 0 3 3 6 2 1 7.67 72 1 160 71
>  13 0 0 4.5 0 1 1 12 1 3 0 4.5 2 1 0 78 2 151 46
>  13 2.5 15.28 0 0 2 0 0 0 3 0 4.5 2 1 6.31 78 2 151 46
>  13 0 0 4.5 -2 2 1 24 4 1 2 4.5 1 2 0 78 2 151 46
>  13 3.083 2.24 0 0 2 0 0 0 1 2 4.5 1 2 0.53 78 2 151 46
>
> #Leer el archivo de datos:
> Data <- read.table
> ("C:/Guillermo/Aprendiendo/Tareas_MV/Horas/mydata.prn",header=TRUE)
>
> i <- 0
> for(i in 2:length(Data$DV)){
>  if(Data$DV[i] != 0 & Data$TIME[i] != Data$TIME[i-1]){
>   Data <- rbind(Data[1:i,],Data[i,],Data[i+1:length(Data$DV),])
>   Data$DV[i] <- Data$NAP[i]
>   Data$NAP[i] <- 2
>   Data$CMT[i] <- 3
>  }
> }
> #Escribir los valores de la columna NAP:
> Data$NAP <- ifelse(Data$NAP != 2,Data$NAP <- 1,Data$NAP <- 2)
> #Eliminar columnas con valores NA:
> Data <- Data[!is.na(Data[,1]),]
> Data
> #Eliminar las variables utilizadas:
> rm(i,Data)
>
> Gracias
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es