Изменить типы данных для нескольких столбцов R - PullRequest
0 голосов
/ 15 января 2020

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

newtibble_1 <- newtibble_1 %>%
  type.convert(as.is = TRUE) %>%
  lapply(.[1:7],as.character)

1 Ответ

1 голос
/ 15 января 2020

С dplyr, синтаксис должен был бы использовать mutate_at

library(dplyr)
newtibble_1 <- newtibble_1 %>%
                 type.convert(as.is = TRUE) %>%
                 mutate_at(1:7, as.character)

Выход lapply равен list и может не соответствовать требуемому OP. В приведенном выше коде проблема заключается в контейнеризации или блокировке кода, так как происходит много вещей, то есть извлечение первых 7 столбцов, затем цикл с lapply et c ..

Это может быть сделано с {}.

mtcars %>% 
       {lapply(.[1:7], as.character)}

Или, если нам нужно сделать это в трубе, затем сначала выполнить извлечение, а затем l oop

mtcars %>%
      .[1:7] %>%
      lapply(as.character)

Но обратите внимание, что оба Приведенное выше выберет столбцы 1: 7 и не обновляет исходные столбцы набора данных. Для этого нам может потребоваться сделать <- для тех же выбранных столбцов


Или другой вариант - map

library(purrr)
mtcars %>%
     map_at(1:7, as.character) %>%
     bind_cols
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...