我有一个data.frame类列Factor.我想将它转换为数字,以便我可以使用相关矩阵.
> str(breast)
'data.frame': 699 obs. of 10 variables:
....
$ class : Factor w/ 2 levels "2","4": 1 1 1 1 1 2 1 1 1 1 ...
> table(breast$class)
2 4
458 241
> cor(breast)
Error in cor(breast) : 'x' must be numeric
Run Code Online (Sandbox Code Playgroud)
如何将Factor列转换为数字列?
akr*_*run 86
breast$class <- as.numeric(as.character(breast$class))
Run Code Online (Sandbox Code Playgroud)
如果要转换为许多列 numeric
indx <- sapply(breast, is.factor)
breast[indx] <- lapply(breast[indx], function(x) as.numeric(as.character(x)))
Run Code Online (Sandbox Code Playgroud)
另一种选择是stringsAsFactors=FALSE在使用read.table或读取文件时使用read.csv
以防万一,创建/更改列的其他选项
breast[,'class'] <- as.numeric(as.character(breast[,'class']))
Run Code Online (Sandbox Code Playgroud)
要么
breast <- transform(breast, class=as.numeric(as.character(breast)))
Run Code Online (Sandbox Code Playgroud)
Bro*_*ieG 10
来自?factor:
要将因子f转换为大约其原始数值,
as.numeric(levels(f))[f]建议使用效率略高于as.numeric(as.character(f)).
| 归档时间: |
|
| 查看次数: |
207601 次 |
| 最近记录: |