Подтвердить что ты не робот

Замена значений из столбца с использованием условия в R

У меня очень простой R вопрос, но мне трудно найти правильный ответ. У меня есть фрейм данных, который выглядит следующим образом:

 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)

Что бы я хотел, чтобы он выбрал И заменил все строки, где depth < 10 (например), на ноль, но я хочу сохранить всю информацию, связанную с этими строками и исходными измерениями фрейма данных.

Я пробовал следующее, но это не работает.

df[df$depth<10]<-0

Какие-либо предложения?

4b9b3361

Ответ 1

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

(Для столбцов, которые являются факторами, вы можете назначать только значения, которые являются факторами. Если вы хотите присвоить значение, которое в настоящее время не является фактором, вам нужно сначала создать дополнительный уровень:

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