Как исправить порядок уровней факторов на момент создания переменной в R - PullRequest
0 голосов
/ 30 октября 2018

Я создаю набор переменных, имеющих одинаковые уровни: 0 or 1. Однако, когда я их печатаю, иногда таблица начинается со значения 0, а иногда с 1. Я хотел бы посмотреть, смогу ли я заблокировать заказ при их создании. Вот как они создаются:

list = ('a','b','c')
df <- df %>% mutate_at(.vars = list, .funs = funs(yn = ifelse(. == 0,0,1)))

Также то, что я использую для исправления порядка ниже:

neworder = ('0','1')
df <- arrange(transform(df, a=factor(a, levels = neworder)),a)

но я не могу объединить две процедуры.

1 Ответ

0 голосов
/ 30 октября 2018

Возможно, вы получили ошибку при смешивании числовых и символьных значений? Это работает для меня:

library(tidyverse)

df <- data.frame(a = rbinom(10, 1, 0.5),
                 b = rbinom(10, 1, 0.5),
                 c = rbinom(10, 1, 0.5))

list <-  c('a','b','c')
neworder <- c(0, 1)

df <- df %>% 
  mutate_at(.vars = list, .funs = funs(yn = factor(ifelse(. == 0,0,1), levels = neworder)))



str(df)
'data.frame':   10 obs. of  6 variables:
$ a   : int  0 1 0 1 1 1 1 1 0 1
$ b   : int  1 0 0 0 0 0 0 0 0 0
$ c   : int  1 1 1 1 1 0 0 0 0 0
$ a_yn: Factor w/ 2 levels "0","1": 1 2 1 2 2 2 2 2 1 2
$ b_yn: Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1
$ c_yn: Factor w/ 2 levels "0","1": 2 2 2 2 2 1 1 1 1 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...