тебе нужно, чтобы все было в одном утверждении?
В вашем коде есть несколько синтаксических ошибок, но возможное решение было бы сделать что-то вроде этого
data$text <- "other"
data$text[data$number >=0 & data$number < 10] <- "less than 10"
data$text[data$number >=10 & data$number < 20] <- "between 10 and 20"
data$text[data$number >=20 & data$number < 30] <- "between 20 and 30"
Я создал новый столбец, потому что, если бы я должен был заменить значения вВ столбце «число» с текстом весь столбец будет приведен к типу символа, что может привести к непредвиденному поведению операторов неравенства.
У вас также есть некоторые совпадения в ваших категориях.Попробуйте изменить верхнюю границу на строго меньшее, чем (например, 20 равно> = 20 и <= 20, поэтому подпадает под категории «между 10 и 20» и «между 20 и 30» </p>
Если вы хотитев одну строку вы можете использовать функцию cut ():
cut(data$number, breaks=c(0,10,20,30,Inf),
labels=c("less than 10", "between 10 and 20", "between 20 and 30", "other"))
, которая превращает числовой вектор в множитель.