【发布时间】:2016-11-07 10:47:15
【问题描述】:
不是一个特别有用的问题,但是...
我不小心将字符列(包含字母和数字的组合)转换为数字列;这让我想知道 R 究竟是如何进行这种转换的?
【问题讨论】:
标签: r type-conversion character numeric letter
不是一个特别有用的问题,但是...
我不小心将字符列(包含字母和数字的组合)转换为数字列;这让我想知道 R 究竟是如何进行这种转换的?
【问题讨论】:
标签: r type-conversion character numeric letter
这取决于原始字符向量的编码方式。如果它是一个真正的字符向量,任何不是数字的值都会被替换为 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
【讨论】: