Проблема с созданием новой переменной на основе нескольких условий - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь создать новый столбец в R на основе существующих переменных.У меня есть переменные A и B, и на основе этих значений я хочу создать переменную "C".Переменные A и B являются частью фрейма данных unprocessed_data3.

По сути, я бы хотел, чтобы volfree равнялся 1, если free равен 1, а B9_new равен 1, и volfree равняется 0, если free равен 1, а B9_new равен 2, и volfree равен N / A во всех других случаях.У меня есть код, написанный в Stata ниже.

> gen volfree=1 if free==1 & B9_new==1

> replace volfree=0 if free==1 & B9_new==2

Я пытался использовать приведенную ниже команду.

> unprocessed_data3$volfree = with(unprocessed_data3, ifelse(free ==0 , NA,
                               ifelse(B9_new=="1", 1, 0)))

Я пытался использовать его, но в итоге получаю в основном NA и немного 0. Я ожидаю много NA и немного 0, но также несколько 1, чего не было.Я точно знаю, что есть некоторые из этих условий.

Ниже приведен мой код

> unprocessed_data <- read.dta('C:/Users/Yuraku/Downloads/04291-0001-Data.dta')
> attach(unprocessed_data)

> unprocessed_data3 <- subset(unprocessed_data, A6 != 5 & A6 !=6)

> free <- unprocessed_data3$B8

> unprocessed_data3$free_2   <- free
> unprocessed_data3$free_new <- unfactor(free)
> unprocessed_data3$B9_new   <- unfactor(unprocessed_data3$B9)
> unprocessed_data3$volfree = with(unprocessed_data3, ifelse(free ==0 , NA,
                               ifelse(B9_new=="1", 1, 0)))

Используя сводные и головные функции, я обнаружил, что мои min, max и median равны 0. Но должно быть почти 50 «1».Кроме того, я также получаю ошибку

>unexpected 'r' after expression

Вместо этого я не получил это, что странно.

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