Как преобразовать символ в число в R (с примерами)


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

numeric_vector <- as. numeric (character_vector)

В этом руководстве представлено несколько примеров использования этой функции на практике.

Пример 1. Преобразование вектора из символьного в числовой

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

#create character vector
chars <- c('12', '14', '19', '22', '26')

#convert character vector to numeric vector
numbers <- as. numeric (chars)

#view numeric vector
numbers

[1] 12 14 19 22 26

#confirm class of numeric vector
class (numbers)

[1] "numeric"

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

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

#create data frame
df <- data.frame(a = c('12', '14', '19', '22', '26'),
 b = c(28, 34, 35, 36, 40))

#convert column 'a' from character to numeric
df$a <- as.numeric(df$a)

#view new data frame
df

 a b
1 12 28
2 14 34
3 19 35
4 22 36
5 26 40

#confirm class of numeric vector
class(df$a)

[1] "numeric"

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

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

#create data frame
df <- data.frame(a = c('12', '14', '19', '22', '26'),
 b = c('28', '34', '35', '36', '40'),
 c = as. factor (c(1, 2, 3, 4, 5)),
 d = c(45, 56, 54, 57, 59))

#display classes of each column
sapply(df, class)

 a b c d 
"character" "character" "factor" "numeric" 

#identify all character columns
chars <- sapply(df, is. character )

#convert all character columns to numeric
df[ , chars] <- as. data.frame ( apply(df[ , chars], 2, as. numeric ))

#display classes of each column
sapply(df, class)

 a b c d 
"numeric" "numeric" "factor" "numeric" 

Этот код внес следующие изменения в столбцы фрейма данных:

  • Столбец a: от символа к цифре
  • Столбец b: от символа к цифре
  • Столбец c: без изменений (поскольку это был фактор)
  • Столбец d: без изменений (поскольку он уже был числовым)

Используя функции apply() и sapply() , мы смогли преобразовать только столбцы символов в числовые столбцы и оставить все остальные столбцы без изменений.

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

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