Я не могу понять это. У меня есть кадр данныхКлассифицировать идентификационную колонку на основе другого столбца
id=c(1,2,3,4,2,6,1,1,6,5,4,2)
per=c(0.1,0.9,0.6,0.5,0.8,0.9,0.2,0.3,0.7,0.5,0.4,0.3)
df=data.frame(id=id,per=per)
Я хочу, чтобы разделить столбец «за» в трех условиях, позволяет сказать, от 0 до 0,3 (мы присваиваем 3), 0,3 и 0,7 (мы присваиваем 2), и 0,7 и 1 (мы назначаем 1).
Моей идеей является присвоение каждому уникальному id наибольшему числу этого деления, т. Е. Если для id = 1 в диапазоне 0.7-1 больше «per», то этот идентификатор соответствует этому делению, id = 1 соответствует «1». Таким образом, пример будет выглядеть следующим образом:
id class
1 3
2 1
3 2
4 2
5 2
6 1
Я нашел
R- selecting a row based on characteristics of another column in that row
, но мне нужно предыдущий шаг, то есть, классификацию, чтобы достичь этой точки.
Спасибо!
Ваше определение не ясно для края случаях: должно быть 0,3 назначено 3 или 2? Аналогично, 0,7 представляет собой 2 или 1? – Ricky
Вы правы, я прошу прощения. Он должен быть: 1: 0 <= x <0,3, 2: 0,3 <= x <0,7, 3: 0,7 <= x <1 – Andres
Другой вариант - 'c (3, 2, 1) [findInterval (per, c (0, 0.3, 0.7, 1))] ' – akrun