Вы можете использовать следующие методы для преобразования нескольких столбцов в числовые с помощью пакета 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