Как добавить коэффициент в кусочек, используя dplyr pipe [duplicate]

Для новой настройки LAMP running php 7 отредактируйте файл /etc/httpd/conf/httpd.conf. Примечание. Обязательно сделайте резервную копию для него перед тем, как что-либо изменить.

Вставьте это в самое нижнее файла:

<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Затем найдите LoadModule и вставьте следующую строку:

LoadModule php7_module modules/libphp7.so

Эта строка просто попросит httpd загрузить модуль php 7

Затем перезапустите httpd

28
задан user3393472 28 January 2015 в 12:03
поделиться

6 ответов

Возможно, вы ищете эту функцию plyr :: revalue:

mutate(dat, x = revalue(x, c("A" = "B")))

Вы также можете увидеть plyr :: mapvalues.

22
ответ дан Diego 21 August 2018 в 21:06
поделиться

С пакетом forcats из tidyverse это тоже легко.

mutate(dat, x = fct_recode(x, "B" = "A"))
29
ответ дан dpprdan 21 August 2018 в 21:06
поделиться

По моему мнению, принятый в настоящее время ответ только изменяет порядок уровней фактора , а не фактические метки (т. е. как называются уровни фактора) , Чтобы проиллюстрировать разницу между уровнями и , рассмотрим следующий пример:

Поверните cyl в коэффициент (задающие уровни не нужны, поскольку они кодируются в алфавитно-цифровом порядке):

    mtcars2 <- mtcars %>% mutate(cyl = factor(cyl, levels = c(4, 6, 8))) 
    mtcars2$cyl[1:5]
    #[1] 6 6 4 6 8
    #Levels: 4 6 8

Измените порядок уровней (но не сами метки: cyl все еще один и тот же столбец)

    mtcars3 <- mtcars2 %>% mutate(cyl = factor(cyl, levels = c(8, 6, 4))) 
    mtcars3$cyl[1:5]
    #[1] 6 6 4 6 8
    #Levels: 8 6 4
    all(mtcars3$cyl==mtcars2$cyl)
    #[1] TRUE

Назначьте новые ярлыки cyl Порядок меток был: c (8, 6, 4), поэтому мы указываем новые метки следующим образом:

    mtcars4 <- mtcars3 %>% mutate(cyl = factor(cyl, labels = c("new_value_for_8", 
                                                               "new_value_for_6", 
                                                               "new_value_for_4" )))
    mtcars4$cyl[1:5]
    #[1] new_value_for_6 new_value_for_6 new_value_for_4 new_value_for_6 new_value_for_8
    #Levels: new_value_for_8 new_value_for_6 new_value_for_4

Обратите внимание, что этот столбец отличается от наших первых столбцов:

    all(as.character(mtcars4$cyl)!=mtcars3$cyl) 
    #[1] TRUE 
    #Note: TRUE here indicates that all values are unequal because I used != instead of ==
    #as.character() was required as the levels were numeric and thus not comparable to a character vector

Подробнее:

Если мы изменили уровни cyl, используя mtcars2 вместо mtcars3, нам нужно было бы указать метки по-разному получить тот же результат. Порядок меток для mtcars2 был: c (4, 6, 8), поэтому мы указываем новые метки следующим образом

    #change labels of mtcars2 (order used to be: c(4, 6, 8)
    mtcars5 <- mtcars2 %>% mutate(cyl = factor(cyl, labels = c("new_value_for_4", 
                                                               "new_value_for_6", 
                                                               "new_value_for_8" )))

В отличие от mtcars3$cyl и mtcars4$cyl, метки из mtcars4$cyl и mtcars5$cyl, таким образом, идентичны, хотя их уровни имеют другой порядок.

    mtcars4$cyl[1:5]
    #[1] new_value_for_6 new_value_for_6 new_value_for_4 new_value_for_6 new_value_for_8
    #Levels: new_value_for_8 new_value_for_6 new_value_for_4

    mtcars5$cyl[1:5]
    #[1] new_value_for_6 new_value_for_6 new_value_for_4 new_value_for_6 new_value_for_8
    #Levels: new_value_for_4 new_value_for_6 new_value_for_8

    all(mtcars4$cyl==mtcars5$cyl)
    #[1] TRUE

    levels(mtcars4$cyl) == levels(mtcars5$cyl)
    #1] FALSE  TRUE FALSE
8
ответ дан Flo 21 August 2018 в 21:06
поделиться

Не могу комментировать, потому что у меня недостаточно очков репутации, но перекодировка работает только с вектором, поэтому приведенный выше код в ответе @ Стефано должен быть

df <- iris %>%
  mutate(Species = recode(Species, 
     setosa = "SETOSA",
     versicolor = "VERSICOLOR",
     virginica = "VIRGINICA")
  )
10
ответ дан PaulFrater 21 August 2018 в 21:06
поделиться

Вы можете использовать функцию recode из dplyr.

df <- iris %>%
     mutate(Species = recode(Species, setosa = "SETOSA",
         versicolor = "VERSICOLOR",
         virginica = "VIRGINICA"
     )
)
13
ответ дан Stefano 21 August 2018 в 21:06
поделиться
  • 1
    Обратите внимание, что перекодировка работает только на векторах, см. Ответ от PaulFrater для версии, которая работает. – Magnus 17 October 2017 в 10:11

Я не совсем уверен, что правильно понимаю ваш вопрос, но если вы хотите изменить уровни факторов cyl на mutate(), вы могли бы сделать:

df <- mtcars %>% mutate(cyl = factor(cyl, levels = c(4, 6, 8)))

Вы получили бы:

#> str(df$cyl)
# Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
25
ответ дан Steven Beaupré 21 August 2018 в 21:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: