R如何将字符转换为数字?
How does R convert characters to numbers?
不是一个特别有用的问题但是...
我不小心将字符列(包含字母和数字的组合)转换为数字列;这让我想知道 R 究竟是如何进行这种转换的?
这取决于原始字符向量的编码方式。如果它是一个真正的字符向量,任何不是数字的值都会被替换为 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
不是一个特别有用的问题但是...
我不小心将字符列(包含字母和数字的组合)转换为数字列;这让我想知道 R 究竟是如何进行这种转换的?
这取决于原始字符向量的编码方式。如果它是一个真正的字符向量,任何不是数字的值都会被替换为 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