所以我正在尝试处理从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


谁能帮助我知道我在做什么错?

最佳答案

嘿,我认为您犯了一个简单的错误,您会为此而踢。您的lm()模型应使用语法

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


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

希望这会有所帮助。

关于r - R:找不到对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49283292/

10-11 18:41