Как просмотреть фиктивные переменные - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть переменная (FTA), которая имеет 2 варианта (да или нет), и я хочу создать фиктивную переменную, чтобы заменить ее на yes = 1 и no = 0.Начиная с периода времени (t) 3 и далее, оно должно равняться 1, а до этого должно быть 0.

df<-dummy.data.frame(df, names=c("FTA"), sep="_")

После ввода этой строки кода я не вижу никакой разницы по сравнению с предыдущим при просмотреСводка данных (она по-прежнему учитывает количество «нет» и «да» в столбце под именем переменной).

Я также пытался сделать:

dummy <- as.numeric(t >= 3)

dummy2 <- as.numeric(t < 3)

, а также:

ifelse(t >=3, 1, 0)

Но я все еще не вижу никаких изменений в резюме.Правильно ли я это сделал, и что я могу сделать, чтобы просмотреть фиктивную переменную, которую я создал, и заменить на нее старую?

Редактировать: Пример данных

Моя цель - создать фиктивную переменную, которая заменит "FTA".

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Вы можете сделать следующее:

# sample data frame
df <- data.frame(t = c(1,2,3,4,5,6), flag = c('no','yes','yes','yes','yes','yes'))

# encode the values
df$flag <- ifelse(df$flag == 'yes',1, 0)

# set values as 0 before time = 3
df[df$t < 3, c('flag')] <- 0

  t flag
1 1    0
2 2    0
3 3    1
4 4    1
5 5    1
6 6    1
0 голосов
/ 25 декабря 2018

Это то, что вы хотите?(На основе значения 4 как критического водораздела в ОП)

# Data:
t <- c(1:10)
FTA <- sample(c("yes", "no"), 10, replace = T)
df <- data.frame(t, FTA)
df
    t FTA
1   1 yes
2   2 yes
3   3 yes
4   4  no
5   5  no
6   6  no
7   7 yes
8   8  no
9   9 yes
10 10 yes

# Change `FTA` based on two conditions:
df$new <-ifelse(df$t >= 4 &df$FTA=="yes", 1, 
            ifelse(df$t >= 4 &df$FTA=="no", 0, as.character(df$FTA)))
df
    t FTA new
1   1 yes yes
2   2 yes yes
3   3 yes yes
4   4  no   0
5   5  no   0
6   6  no   0
7   7 yes   1
8   8  no   0
9   9 yes   1
10 10 yes   1
...