Я пытаюсь присвоить номера 1, 2 и 3 фрейму данных с 80 переменными и 250 наблюдениями (финансовые временные ряды). Другими словами, я хочу сгруппировать каждую точку данных в 1, 2 и 3 на основе критериев:
Я думаю, что есть некоторые if
функции, которые могут сделать это. Я пытался найти этот метод, но я не уверен, как правильно сформулировать проблему, чтобы получить хорошие результаты.
Например, используя этот фрейм данных, который построен аналогично моему. Обратите внимание, что значения в векторах могут меняться. Думайте о значениях в dat1
как о баллах от 1 до 5.
dat1 = data.frame(
a = c(2.1,2.3,2.3),
b = c(3.6,3.7,3.8),
c = c(1.2,1.3,1.4),
d = c(2.4, 2.3, 3.2),
e = c(3.9, 1.2, 3.1))
a b c d e
1 2.1 3.6 1.2 2.4 3.9
2 2.3 3.7 1.3 2.3 1.2
3 2.3 3.8 1.4 3.2 3.1
- Если значение составляет от 1 до 2 в
dat1
, присвойте значение 1.
- Если значение составляет от 2 до 3 в
dat1
, присвойте значение 2.
- Если значение больше 3 в
dat1
, присвойте значение 3.
Которым я хочу, чтобы конечный результат стал:
dat2=
a b c d e
1 2 3 1 2 3
2 2 3 1 2 1
3 3 3 1 3 3
и затем суммируйте строки из dat1
, если точки данных из dat2
имеют одинаковые значения для создания:
dat3=
X1 X2 X3
1 1.2 4.5 7.5
2 2.5 4.6 3.7
3 1.4 0.0 13.4
Есть ли способ достичь этого? Я надеюсь, что это было понятно.