Reemplazar valores de una columna usando una condición en R

Tengo una pregunta R muy básica, pero estoy teniendo dificultades para tratar de obtener la respuesta correcta. Tengo un dataframe que se ve así:

species<-"ABC" ind<-rep(1:4,each=24) hour<-rep(seq(0,23,by=1),4) depth<-runif(length(ind),1,50) df<-data.frame(cbind(species,ind,hour,depth)) df$depth<-as.numeric(df$depth) 

Lo que me gustaría es seleccionar Y reemplazar todas las filas donde la profundidad es <10 (por ejemplo) con cero, pero quiero mantener toda la información asociada a esas filas y las dimensiones originales del marco de datos.

He intentado lo siguiente, pero esto no funciona.

 df[df$depth<10]<-0 

¿Alguna sugerencia?

 # reassign depth values under 10 to zero df$depth[df$depth<10] <- 0 

(Para las columnas que son factores, solo puede asignar valores que son niveles de factores. Si desea asignar un valor que actualmente no es un nivel de factor, primero deberá crear el nivel adicional:

 levels(df$species) <- c(levels(df$species), "unknown") df$species[df$depth<10] <- "unknown" 
Intereting Posts