Как преобразовать непрерывную переменную в категориальную в r - PullRequest
0 голосов
/ 05 июля 2019

У меня есть этот df с именем clean_test_master2, к которому вы можете получить доступ к df Здесь

stim_ending_t visbility soundvolume Opening_text               m    sd coefVar
           <dbl>     <dbl>       <dbl> <chr>                  <dbl> <dbl>   <dbl>
 1           1           0           0 Now focus on the Image  1.70 1.14    0.670
 2           1           0           0 Now focus on the Sound  1.57 0.794   0.504
 3           1           0           1 Now focus on the Image  1.55 1.09    0.701
 4           1           0           1 Now focus on the Sound  1.77 0.953   0.540
 5           1           1           0 Now focus on the Image  1.38 0.859   0.621
 6           1           1           0 Now focus on the Sound  1.59 0.706   0.444
 7           1.5         0           0 Now focus on the Image  1.86 0.718   0.387
 8           1.5         0           0 Now focus on the Sound  2.04 0.713   0.350
 9           1.5         0           1 Now focus on the Image  1.93 1.00    0.520
10           1.5         0           1 Now focus on the Sound  2.14 0.901   0.422

Я запускаю эту функцию is.factor, чтобы увидеть, являются ли столбцы моего df бессмысленными или дискретными

Я нашел ответ здесь

f <- sapply(clean_test_master2, is.factor)
> f
stim_ending_t     visbility   soundvolume  Opening_text             m            sd       coefVar 
        FALSE         FALSE         FALSE         FALSE         FALSE         FALSE         FALSE

Я не уверен, что здесь означает ложь?И как проверить, являются ли мои столбцы непрерывными, дискретными или категоричными

Q: Важный вопрос здесь заключается в том, как преобразовать stim_ending_t в категориальный, чтобы я мог выполнить другой анализ, напримерANOVA (см. Этот вопрос здесь ).

Я нашел этот урок здесь , который объясняет, как использовать функцию с именем cat, и эта функция создает отдельный df, но я хочу сохранить свой df как есть.Мне нужно, чтобы изменения произошли в столбце внутри df.

Ответы [ 2 ]

1 голос
/ 05 июля 2019

В Tidyverse вы можете использовать dplyr::mutate_at(), чтобы изменить класс нескольких столбцов на факторы:

clean_test_master2 <- clean_test_master2 %>%
  mutate_at(c("stim_ending_t", "visbility", "soundvolume", "Opening_text"), as.factor)

sapply(clean_test_master2, is.factor)

> sapply(clean_test_master2, is.factor)
stim_ending_t     visbility   soundvolume  Opening_text             m            sd       coefVar 
         TRUE          TRUE          TRUE          TRUE         FALSE         FALSE         FALSE 

Вам может потребоваться определить каждый столбец отдельно (используя factor(x, levels = y, labels = z), если у вас есть диапазоны значений, которые вписываются в одну категорию.

0 голосов
/ 05 июля 2019

Вы можете просто изменить строку sapply, чтобы использовать as.factor вместо is.factor для каждого столбца, который вы хотите преобразовать в фактор, и записать его обратно в имя этой переменной.

Например:

clean_test_master2$stim_ending_t <- sapply(clean_test_master2$stim_ending_t, as.factor)
...