如何在 r 中将字符转换为数字(附示例)
我们可以使用以下语法将字符向量转换为 R 中的数值向量:
numeric_vector <- as. numeric (character_vector)
本教程提供了该功能实际使用的几个示例。
示例 1:将字符向量转换为数值
以下代码显示如何将字符向量转换为数值向量:
#create character vector
tanks <- c('12', '14', '19', '22', '26')
#convert character vector to numeric vector
numbers <- as. numeric (tanks)
#view digital vector
numbers
[1] 12 14 19 22 26
#confirm class of numerical vector
class (numbers)
[1] "digital"
示例 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
ab
1 12 28
2 14 34
3 19 35
4 22 36
5 26 40
#confirm class of numerical vector
class (df$a)
[1] "digital"
示例 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)
abcd
"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)
abcd
"numeric" "numeric" "factor" "numeric"
此代码对数据框列进行了以下更改:
- a栏:从字符到数字
- b 列:从字符到数字
- c 列:不变(因为它是一个因素)
- d 列:未更改(因为它已经是数字)
使用apply()和sapply()函数,我们能够仅将字符列转换为数字列,并保持所有其他列不变。