R如何将字符转换为数字?

时间:2016-07-05 14:32:35

标签: r type-conversion character numeric letter

不是一个特别有用的问题,但......

我不小心将字符列(带有字母和数字组合)转换为数字列;它让我想知道R究竟是如何进行这种转换的?

1 个答案:

答案 0 :(得分:0)

这取决于原始字符向量的编码方式。如果它是真正的字符向量,则任何非数字的值都将替换为NA:

dat <- c("a","b","c","d","a1","2b", "3")
as.numeric(dat)
# [1] NA NA NA NA NA NA  3
# Warning message:
# NAs introduced by coercion 

但是,如果向量是因子,则R使用因子级别来分配数值:

dat <- as.factor(c("a","b","c","d","a1","2b", "3"))
dat
# [1] a  b  c  d  a1 2b 3 
# Levels: 2b 3 a a1 b c d
as.numeric(dat)
# [1] 3 5 6 7 4 1 2