una - eliminar un elemento en r
Eliminando filas vacĂas de un archivo de datos en R (2)
Tengo un conjunto de datos con filas vacías. Me gustaría quitarlos:
myData<-myData[-which(apply(myData,1,function(x)all(is.na(x)))),]
Funciona bien Pero ahora me gustaría agregar una columna en mis datos e inicializar el primer valor:
myData$newCol[1] <- -999
Error in `$<-.data.frame`(`*tmp*`, "newCol", value = -999) :
replacement has 1 rows, data has 0
Desafortunadamente, no funciona y no entiendo por qué y no puedo resolverlo. Funcionó cuando eliminé una línea a la vez usando:
TgData = TgData[2:nrow(TgData),]
O algo parecido.
También funciona cuando usé solo las primeras 13.000 filas.
Pero no funciona con mis datos reales, con 32.000 filas.
¿Qué hice mal? Parece que no tiene sentido para mí.
Si tiene filas vacías, no NA, puede hacer:
data[!apply(data == "", 1, all),]
Para eliminar ambos (NAs y vacíos):
data <- data[!apply(is.na(data) | data == "", 1, all),]
Supongo que quieres eliminar las filas que son todas las AN. Entonces, puedes hacer lo siguiente:
data <- rbind(c(1,2,3), c(1, NA, 4), c(4,6,7), c(NA, NA, NA), c(4, 8, NA)) # sample data
data
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 NA 4
[3,] 4 6 7
[4,] NA NA NA
[5,] 4 8 NA
data[rowSums(is.na(data)) != ncol(data),]
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 NA 4
[3,] 4 6 7
[4,] 4 8 NA
Si desea eliminar las filas que tienen al menos un NA, simplemente cambie la condición:
data[rowSums(is.na(data)) == 0,]
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 6 7