R:未找到对象

时间:2018-03-14 16:41:10

标签: r machine-learning dataset

所以我试图处理从UCI数据集存储库获得的数据集(fertility_diagnosis)。

data = read.csv('fertility_rate.csv', header = FALSE)

summary(data)
str(data)
> str(data)
'data.frame':   100 obs. of  10 variables:
 $ V1 : num  -0.33 -0.33 -0.33 -0.33 -0.33 -0.33 -0.33 -0.33 1 1 ...
 $ V2 : num  0.69 0.94 0.5 0.75 0.67 0.67 0.67 1 0.64 0.61 ...
 $ V3 : int  0 1 1 0 1 1 0 1 0 1 ...
 $ V4 : int  1 0 0 1 1 0 0 1 0 0 ...
 $ V5 : int  1 1 0 1 0 1 0 1 1 0 ...
 $ V6 : int  0 0 0 0 0 0 -1 0 0 0 ...
 $ V7 : num  0.8 0.8 1 1 0.8 0.8 0.8 0.6 0.8 1 ...
 $ V8 : int  0 1 -1 -1 -1 0 -1 -1 -1 -1 ...
 $ V9 : num  0.88 0.31 0.5 0.38 0.5 0.5 0.44 0.38 0.25 0.25 ...
 $ V10: Factor w/ 2 levels "N","O": 1 2 1 1 2 1 1 1 1 1 ...

data[, c(V3:V6,V8)] <- sapply(data[, c(V3:V6,V8)], as.numeric)
> data[, c(V3:V6,V8)] <- sapply(data[, c(V3:V6,V8)], as.numeric)
Error in `[.data.frame`(data, , c(V3:V6, V8)) : object 'V3' not found

可以看到变量名称为V1-V10。其中V3-V6和V9是int类型。 所以我试图将它们转换为数字类型。 但是在输出中我找不到对象。

> head(data,5)
     V1   V2 V3 V4 V5 V6  V7 V8   V9 V10
1 -0.33 0.69  0  1  1  0 0.8  0 0.88   N
2 -0.33 0.94  1  0  1  0 0.8  1 0.31   O
3 -0.33 0.50  1  0  0  0 1.0 -1 0.50   N
4 -0.33 0.75  0  1  1  0 1.0 -1 0.38   N
5 -0.33 0.67  1  1  0  0 0.8 -1 0.50   O

并且我也尝试将回归应用于num类型变量,如下所示

library(caTools)
set.seed(123)
split = sample.split(data$V10, SplitRatio = 0.75)
train = subset(data, split == TRUE)
test = subset(data, split == FALSE)

lin_reg = lm(formula = V10 ~ V1+V2+V7+V9,
             data = train)
     > lin_reg = lm(formula = V10 ~ V1+V2+V7+V9,
       +              data = train)
   Warning messages:
    1: In model.response(mf, "numeric") :
      using type = "numeric" with a factor response will be ignored
    2: In Ops.factor(y, z$residuals) : ‘-’ not meaningful for factors
谁能帮助我知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

嘿,我认为你犯了一个简单的错误,你会为自己踢。你的lm()模型应该使用语法

lm(Response(dependent).variable~Predictor(Independent).variable)

我相信您收到此错误是因为您的响应变量是因子变量而不是数字。如果您确定v10是响应变量,那么您需要查看逻辑回归(https://www.r-bloggers.com/how-to-perform-a-logistic-regression-in-r/)。但是,我怀疑你想知道你的一个数值变量如何响应V10和其他一些变量。它是否正确?我需要更多地了解您的变量以及您要测试的内容以进一步解释。

希望这会有所帮助。