создание новых переменных с операторами ifelse и forloops в r - PullRequest
0 голосов
/ 19 апреля 2019

Мне нужно создать фиктивную переменную для каждого уникального категориального значения переменной в моем фрейме данных.

Мне интересно, могу ли я превратить unique(data$variable) в вектор, а затем создать цикл, который назначает новую переменную для каждого значения. Что-то вроде

for(val in vector){

data$print(val)<- ifelse(data$variable == val, 1, 0)}

Когда я пытаюсь это сделать, я получаю эту ошибку:

недопустимая функция в сложном назначении

Изменение кода на `for (val в векторе) {

data$print[val]<- ifelse(data$variable == val, 1, 0)}`

выдает ошибку

Ошибка в $<-.data.frame (*tmp*, печать, значение = c (1, 1, 1, 1, 1, 1, : замена имеет 480437 строк, данные - 480436

переменная data $ также уже имеет значение .factor

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 19 апреля 2019

Правильный код был

`for(value in vector) { 
  nam <- paste(value)
  assign(nam, ifelse(data$variable == value, "1", "0"))
 data<-cbind(data, get(value))
}`

, где assign создает объекты для результата каждого оператора ifelse, а cbind соединяет их с фреймом данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...