Замена значений из столбца с использованием условия в 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
Какие-либо предложения?
Ответы
Ответ 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"