在R中使用包glm2
和mlbench
,我正在使用BreastCancer
数据集进行测试。我从数据框中的10列开始,有479个观察结果。
我想将10个列中的9个从因子转换为数字并保留数据帧,但我的新数据帧变成了2列而不是10列的数据帧?
这是我的代码
library(mlbench)
library(glm2)
data(BreastCancer)
BC = na.omit(BreastCancer)
BC = BC[, -1]
indexes = sample(1:nrow(BC), size=0.3*nrow(BC))
BCtrain = BC[-indexes,]
as.numeric.factor <- function(x) as.numeric(levels(x))[x]
BCtrain_x <- lapply(BCtrain[, -which(names(BCtrain) %in% c("Class"))], as.numeric.factor)
BCtrain_x <- as.data.frame(rbind(BCtrain_x, BCtrain$Class))
答案 0 :(得分:1)
替换你的最后一行
BCtrain_x <- as.data.frame(rbind(BCtrain_x,BCtrain$Class))
与
BCtrain_x <- cbind.data.frame(BCtrain_x, BCtrain["Class"])
然后你会变得金黄。
dim(BCtrain_x)
# [1] 419 10
unlist(lapply(BCtrain_x, class))
# Cl.thickness Cell.size Cell.shape Marg.adhesion Epith.c.size
# "numeric" "numeric" "numeric" "numeric" "numeric"
# Bare.nuclei Bl.cromatin Normal.nucleoli Mitoses Class
# "numeric" "numeric" "numeric" "numeric" "factor"