Как преобразовать несколько столбцов в числовые с помощью dplyr


Вы можете использовать следующие методы для преобразования нескольких столбцов в числовые с помощью пакета dplyr :

Метод 1: преобразование определенных столбцов в числовые

library(dplyr) 

df %>% mutate_at(c('col1', 'col2'), as. numeric )

Способ 2: преобразовать все символьные столбцы в числовые

library(dplyr)

df %>% mutate_if(is. character , as. numeric )

В следующих примерах показано, как использовать каждый метод на практике.

Пример 1. Преобразование определенных столбцов в числовые

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
 position=c('G', 'G', 'G', 'F', 'F'),
 assists=c('33', '28', '31', '39', '34'),
 rebounds=c('30', '28', '24', '24', '28'))

#view structure of data frame
str(df)

'data.frame': 5 obs. of 4 variables:
 $ team : chr "A" "B" "C" "D" ...
 $ position: chr "G" "G" "G" "F" ...
 $ assists : chr "33" "28" "31" "39" ...
 $ rebounds: chr "30" "28" "24" "24" ...

Мы видим, что каждый столбец во фрейме данных в настоящее время является символом.

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

library(dplyr) 

#convert assists and rebounds columns to numeric
df <- df %>% mutate_at(c('assists', 'rebounds'), as. numeric )

#view structure of updated data frame
str(df)

'data.frame': 5 obs. of 4 variables:
 $ team : chr "A" "B" "C" "D" ...
 $ position: chr "G" "G" "G" "F" ...
 $ assists : num 33 28 31 39 34
 $ rebounds: num 30 28 24 24 28

Мы видим, что столбцы передач и подборов теперь являются числовыми.

Пример 2. Преобразование всех символьных столбцов в числовые

Предположим, у нас есть следующий фрейм данных в R:

#create data frame
df <- data.frame(ranking=factor(c(1, 4, 3, 2, 5)),
 assists=c('12', '10', '8', '11', '15'),
 points=c('33', '28', '31', '39', '34'),
 rebounds=c('30', '28', '24', '24', '28'))

#view structure of data frame
str(df)

'data.frame': 5 obs. of 4 variables:
 $ ranking : Factor w/ 5 levels "1","2","3","4",..: 1 4 3 2 5
 $ assists : chr "12" "10" "8" "11" ...
 $ points : chr "33" "28" "31" "39" ...
 $ rebounds: chr "30" "28" "24" "24" ...

Мы видим, что три столбца во фрейме данных являются символьными столбцами.

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

library(dplyr) 

#convert all character columns to numeric
df <- df %>% mutate_if(is. character , as. numeric )

#view structure of updated data frame
str(df)

'data.frame': 5 obs. of 4 variables:
 $ ranking : Factor w/ 5 levels "1","2","3","4",..: 1 4 3 2 5
 $ assists : num 12 10 8 11 15
 $ points : num 33 28 31 39 34
 $ rebounds: num 30 28 24 24 28

Мы видим, что все столбцы символов теперь числовые.

Примечание.Обратитесь к странице документации dplyr за полным объяснением функций mutate_at и mutate_if .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

Как преобразовать фактор в числовой в R
Как преобразовать дату в число в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.