Фиктивная переменная для года в R

Итак, мой набор данных состоит из 7 переменных, и одна из них — дата с 2004 по 2008 год, и я хочу создать фиктивную переменную для 2008 года. В частности, я хочу знать, что произошло до 2008 года и после, и иметь уровни 0 и 1. , но я не знаю, как это сделать в R.

str(data)
'data.frame':   56 obs. of  8 variables:
 $ Date     : Factor w/ 56 levels "1/1/2005","1/1/2006",..: 17 22 27 32 37 42 47 52 5 9 ...
 $ LB       : num  86.7 82.9 73.4 75.7 75.2 ...
 $ CAC40    : num  3730 3625 3678 3671 3732 ...
 $ DAX      : num  4018 3857 3978 3921 4065 ...
 $ DOW      : num  10588 10355 10234 10204 10437 ...
 $ EURUSD   : num  1.25 1.23 1.2 1.22 1.22 ...
 $ BRENT    : num  32.2 32.8 34.5 36.6 34.5 ...

person Elen    schedule 20.04.2018    source источник
comment
Для этого вам не обязательно нужен новый столбец, вы можете просто создать подмножество, используя df$some_col[df$year < 2008].   -  person Tim Biegeleisen    schedule 20.04.2018
comment
это сработало отлично! Спасибо за помощь!   -  person Elen    schedule 20.04.2018


Ответы (2)


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

 data$dummyYear <- as.numeric(data$year < 2008)

Эта новая переменная имеет значение 1 для 2004:2007 годов и 0 для 2008 года.

person JFraper    schedule 20.04.2018

Вы можете попробовать функцию filter из dplyr.

filter(Data, data$Date< 2008 )

Было бы здорово, если бы вы могли предоставить воспроизводимый код.

person Sovik Gupta    schedule 20.04.2018
comment
Я попробовал код и получил следующее предупреждение: Предупреждающее сообщение: в Ops.factor(data$Date, 2008): '‹' не имеет смысла для факторов. Мой набор данных подобна: Head (Data) Дата LB CAC40 Dow Dow EURUSD BRENT 1 2/1/2004 86.71 3730.36 4018.16 10588.22 1.2534 32.22 2 3/1/2004 82.86 3625.22 3856.70 10354.96 1.2301 32.77 3 4/1/2004 73.39 3677.77 3978.26 10233.80 1.1984 34.48 4 5/1984 34.48 4 5/1/2004 75.65 3671.49 3921.49 10203.79 1.2181 36.61 5 6/1/2004 75.25 3732.50 4065.40 10437.00 1.2200 34.48 6 7/1/2004 70.10 3654.40 3891.2010 10138.70 1.2014 40,02 - person Elen; 20.04.2018
comment
это не правильный синтаксис. вместо этого используйте filter(Data, Date< 2008 ) - person Roman; 20.04.2018
comment
Синтаксис в порядке, вы можете использовать любой из них. Я упомянул об этом, чтобы было легко понять, что дата - это столбец в данных, на которые он / она ссылается. Оба верны. - person Sovik Gupta; 20.04.2018