Преобразование одной переменной на основе переменной класса - PullRequest
1 голос
/ 15 апреля 2019

У меня есть набор данных, которым я пытаюсь манипулировать.Это требует, чтобы я преобразовал значения атрибута wheeltype на основе значений переменных cartype класса, 1 и 2. Однако я не могу заставить это работать должным образом.

Хорошо, у меня есть некоторый написанный кодно это дает мне ошибку: неверный уровень фактора, сгенерированный NA.

for( i in 1:30) {
    if(mydata$cartype[i] == 1) {
         mydata$wheeltype[i] = 1   

     }

     else {
         mydata$wheeltype[i] = 0

     }
}

Здесь я ожидаю, что атрибуты типа колеса будут преобразованы в 1, если тип карты равен 1, а затем установлен тип карты 2Атрибуты wheeltype равны 0. Мой текущий вывод изменяет атрибуты wheeltype на NA.с "недопустимым уровнем фактора, сгенерированным NA" в качестве предупреждения.

1 Ответ

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

Вот несколько опций, использующих синтаксис dplyr (с использованием данных mtcars):

library(dplyr)

data("mtcars")

# ifelse
mtcars %>%
  as_tibble(rownames = "model") %>%
  mutate(wheeltype = ifelse(cyl == 6, 1, 0))

# case_when
mtcars %>%
  as_tibble(rownames = "model") %>%
  mutate(wheeltype = case_when(cyl == 6 ~ 1,
                               cyl == 4 ~ 2,
                               cyl == 8 ~ 3,
                               T ~ NA_real_))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...