[R-es] Insertar filas en un data frame

guivivi en alumni.uv.es guivivi en alumni.uv.es
Mie Oct 28 08:59:51 CET 2009


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



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