Преобразование числовой переменной в фактор в dplyr - PullRequest
0 голосов
/ 02 октября 2018

Мои результаты классифицированы по тому, было ли в эксперименте, в котором они участвовали, 8 или 16 тестовых групп:

set.seed(123)
results <- runif(10)
size <- c(16, 16, 16, 8, 16, 8, 8, 16, 16, 8)
df <- data.frame(results, size)

Я хочу, чтобы size была факторной переменной.В базе RI это можно сделать просто:

df$size <- as.factor(df$size)

Мой вопрос, как вы делаете то же самое в dplyr?Я пытался:

library(dplyr)
df %>%
  do(as_factor(size))

Но я получил ошибку no applicable method for 'as_factor' applied to an object of class "c('double', 'numeric')"

Ответы [ 2 ]

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

Вы можете попробовать:

df %>% 
  mutate(size = as_factor(as.character(size)))

Как только переменная будет преобразована в символ, вызов as_factor () будет работать.

Редактировать: Решение, приведенное выше, еще лучше!

df %>% mutate(size = factor(size))
0 голосов
/ 02 октября 2018

Мы можем использовать mutate

library(dplyr)
library(magrittr)
df %<>%
   mutate(size = factor(size))

str(df)
#'data.frame':  10 obs. of  2 variables:
# $ results: num  0.288 0.788 0.409 0.883 0.94 ...    
# $ size   : Factor w/ 2 levels "8","16": 2 2 2 1 2 1 1 2 2 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...