Pytanie Błąd w eval (expr, envir, enclos): nie znaleziono obiektu


Jestem bardzo nowy w kodowaniu w R i nie mogę zrozumieć, co tu jest nie tak. Każda pomoc będzie doceniana.

data.train <- read.table("Assign2.WineComplete.csv",sep=",",header=T)
# Building decision tree
Train <- data.frame(residual.sugar=data.train$residual.sugar,
                total.sulfur.dioxide=data.train$total.sulfur.dioxide, 
                alcohol=data.train$alcohol,
                quality=data.train$quality)
Pre <- as.formula("pre ~ quality")

fit <- rpart(Pre, method="class",data=Train)

Otrzymuję następujący błąd:

Error in eval(expr, envir, enclos) : object 'pre' not found

14
2017-10-19 06:30


pochodzenie


Nie potrzebujesz drugiej lub trzeciej linii kodu. Po prostu zrób read.table następnie linia: fit <- rpart(pre ~ quality, method="class",data=data.train). - Thomas
Próbowałem tego, o co mnie prosiłeś, ale wciąż mam ten sam błąd - Rads
Czy jest tutaj problem z dużymi / małymi literami? Widzę deklarację "Pre", ale błąd dotyczy "pre". - ako
Nie, jeśli zamiast wszystkich instrukcji, po prostu piszę: data.train <- read.table ("Assign2.WineComplete.csv", sep = ",", header = T), a następnie dopasuj <- rpart (pre ~ quality, method = "class", data = data.train), pojawia się ten sam błąd - Rads


Odpowiedzi:


Nie wiem, dlaczego @Janos skasował swoją odpowiedź, ale jest poprawny: twoja ramka danych Train nie ma kolumny o nazwie pre. Po przekazaniu formuły i ramki danych do funkcji dopasowania modelu nazwy w formule muszą odnosić się do kolumn w ramce danych. Twój Train ma kolumny o nazwie residual.sugar, total.sulfur, alcohol i quality. Musisz zmienić formułę lub ramkę danych, aby były spójne ze sobą.

I po prostu wyjaśnić: Pre jest obiektem zawierającym formułę. Ta formuła zawiera odniesienie do zmiennej pre. To ta ostatnia musi być zgodna z ramą danych.


16
2017-10-19 08:23



Cóż .. Pomyłkowo usunąłem jego wpis podczas próby edycji mojego komentarza .. przepraszam za to @ Janos .. rozumiem co mówisz .. ale kiedy budujesz drzewo decyzyjne za pomocą rpart, możesz mi powiedzieć jak powinna być formuła, drzewem decyzyjnym musi być tylko kolumna "jakość". Próbowałem użyć przykładu z R :: fit <- rpart (Kyphosis ~ Age + Number + Start, data = kifoza) - Rads
Używać rpartpotrzebna jest zmienna zależna: coś, co należy przewidzieć lub oszacować za pomocą zmiennych niezależnych. Które z danych w twojej ramce danych jest zależne? - Hong Ooi


Wystarczy dodać do tego; Może się tak zdarzyć, jeśli nie dołączasz zestawu danych Po prostu zmarnowałem pół godziny, zastanawiając się nad tym.

Twoje zdrowie


6
2017-07-24 05:44



To zrobiło to dla mnie, thx! - Amir Rahbaran
To powinno być bardziej przegłosowane. - Kim


Myślę, że dostałem to, czego szukałem ...

data.train <- read.table("Assign2.WineComplete.csv",sep=",",header=T)
fit <- rpart(quality ~ ., method="class",data=data.train)
plot(fit)
text(fit, use.n=TRUE)
summary(fit)

1
2017-10-19 16:52





używam     colname (train) = wklej ("A", colname (pociąg)) i okazuje się, że ten sam problem, co twój.

W końcu stwierdzam, że randomForest jest bardziej skąpy niż rpart, nie może rozpoznać nazwy nazwy za pomocą spacji, przecinka lub innej interpunkcji.

Funkcja wklejania będzie poprzedzać "A" i "" jako seperator z każdą nazwą kolumny. więc musimy odwrócić przestrzeń i zamiast tego użyć tego zdania:

colname(train) = paste("A", colname(train), sep = "")

to będzie poprzedzać ciąg bez spacji.


0
2018-01-17 07:29