Nachhilfe für R gesucht

Interessantes ohne bestimmtes Thema!

Moderator: student

bigben
Beiträge: 1856
Registriert: Mi Okt 12, 2016 9:09 am

Re: Nachhilfe für R gesucht

Beitrag von bigben »

Student2020 hat geschrieben: Mo Nov 09, 2020 10:34 pm

Code: Alles auswählen

 Test1 <- lm(A ~ Infuence A + Safety, data = Excel1)
Ohne es ausprobiert zu haben würde ihc mal denken, es liegt an dem Leerzeichen in "Influence A". R findet weder eine Spalte "Influence" noch eine Spalte "A". Am besten benennst Du die Spalte um in InfluenceA oder Influence.A oder Influence_A oder "IA". Du kannst den Spaltennamen auch so lassen, musst ihn dann aber in Anführungszeichen stellen, damit R weiß, dass die beiden Wörter zusammengehören.

Code: Alles auswählen

Test1 <- lm(2002 ~ 2003 + 2004, data = Excel1)
Da fragt R sich wahrscheinlich, ob es die Zahlen aufeinander regressieren soll. Auch das ist wieder eine Frage der Spaltennamen und Spalten sollten nie so heißen wie eine Zahl. Wenn Du jogos "dat" einmal mit "head(dat)" anschaust siehst Du, dass er nicht die Jahreszahlen als Spaltennamen übernommen hat.

HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 1923
Registriert: Fr Okt 07, 2016 8:25 am

Re: Nachhilfe für R gesucht

Beitrag von jogo »

Hallo Student2020,

wenn Du die Daten so einliest,
dann sind die Variablen nicht in den Spalten sondern in den Zeilen.
Das Komma als Tausendertrennzeichen wird Probleme verursachen. Bei so einer kleinen Tabelle kann man das noch per Hand bearbeiten, ansonsten im Ursprungsprogramm die Formatierung ändern.

hier ein Ansatz:

Code: Alles auswählen

Excel1a <- read.table(text=
"2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
A 381.26 578.32 272.07 279.62 596.21 707.22 1180.73 910.91 868.82 0.00 0.00
B 313.92 257.48 289.75 307.76 365.42 265.02 331.77 479.44 623.13 0.00 0.00
C 5.29 2.65 27.11 49.89 92.23 36.55 87.29 64.88 126.63 0.00 0.00
'Infuence A' 9.59 9.09 9.75 11.71 11.59 11.42 11.00 11.75 11.93 6.67 5.98
Safety 4.00 4.00 4.67 6.42 6.76 6.00 6.60 6.00 6.00 6.00 6.00
Environment 2.00 2.00 3.98 4.50 4.50 4.50 4.41 3.03 3.50 3.50 3.50")

Excel1 <- as.data.frame(t(Excel1a))
lm(A ~ `Infuence A` + Safety, data = Excel1) 
# das Leerzeichen im Spaltennamen erfordert zusätzliche Arbeit (siehe Nachricht von Bernhard)

# die nächste Regression wieder auf der ursprünglichen Tabelle; beachte: beim Einlesen wurden die Spaltennamen verändert
lm(X2002 ~ X2003 + X2004, data = Excel1a)
noch eines zur zukünftigen Beachtung:
viewtopic.php?f=20&t=29

Gruß, Jörg
Student2020 hat geschrieben: Mo Nov 09, 2020 10:34 pm Wenn ich folgende Daten einziehe, wieso bekomme ich dann einen Fehler für die Regression?
2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
A 381.26 578.32 272.07 279.62 596.21 707.22 1,180.73 910.91 868.82 0.00 0.00
B 313.92 257.48 289.75 307.76 365.42 265.02 331.77 479.44 623.13 0.00 0.00
C 5.29 2.65 27.11 49.89 92.23 36.55 87.29 64.88 126.63 0.00 0.00
Infuence A 9.59 9.09 9.75 11.71 11.59 11.42 11.00 11.75 11.93 6.67 5.98
Safety 4.00 4.00 4.67 6.42 6.76 6.00 6.60 6.00 6.00 6.00 6.00
Environment 2.00 2.00 3.98 4.50 4.50 4.50 4.41 3.03 3.50 3.50 3.50

> Test1 <- lm(A ~ Infuence A + Safety, data = Excel1)
Error in terms.formula(formula, data = data) :
invalid term in model formula
> Test1 <- lm(2002 ~ 2003 + 2004, data = Excel1)
Error in terms.formula(formula, data = data) :
invalid term in model formula

Wenn jemand eine Idee hätte wäre das super hilfreich. :)

Vielen Dank im Voraus!
Benutzeravatar
EDi
Beiträge: 1275
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Nachhilfe für R gesucht

Beitrag von EDi »

R stellt ein paar Bedingungen an Spaltennamen, siehe

Code: Alles auswählen

?make.names
Das erklärt auch die Veränderungen.

Natürlich gibt es Wege drumrum, sonst wäre es nicht R ;)
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Student2020
Beiträge: 6
Registriert: Do Okt 22, 2020 9:19 pm

Re: Nachhilfe für R gesucht

Beitrag von Student2020 »

Erst mal vielen Dank für die Hilfe! Damit hat es nun endlich geklappt. Yippie der erste erfolgreiche Test. :)
bigben hat geschrieben: Di Nov 10, 2020 8:00 am Ohne es ausprobiert zu haben würde ihc mal denken, es liegt an dem Leerzeichen in "Influence A".
[...]
Da fragt R sich wahrscheinlich, ob es die Zahlen aufeinander regressieren soll.
Das wurde angepasst. Den Header übernimmt R eigentlich automatisch beim Importieren.
jogo hat geschrieben: Di Nov 10, 2020 8:20 am dann sind die Variablen nicht in den Spalten sondern in den Zeilen.

Das Komma als Tausendertrennzeichen wird Probleme verursachen.
Jörg auch nochmal danke für die Codes. Damit hat es letzendlich funktioniert.
Die Funktion ist besonders nützlich, damit werde ich nun öfteres arbeiten: <- as.data.frame(t())
jogo hat geschrieben: Di Nov 10, 2020 8:20 am viewtopic.php?f=20&t=29
EDi hat geschrieben: Di Nov 10, 2020 11:33 am

Code: Alles auswählen

?make.names
Die zwei Information habe ich mir durchgelesen.

Eigentlich ist R doch sehr anwenderfreundlich und leicht bedienbar, mit etwas Hilfe und wenn man die Basics lernt / versteht. Ich muss das nur noch etwas besser lernen. Durch eigene Recherche auf die oben genannten Sachen zu kommen, hätte sehr viel mehr Zeit beansprucht. :)
Benutzeravatar
EDi
Beiträge: 1275
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Nachhilfe für R gesucht

Beitrag von EDi »

Ist noch kein Meister vom Himmel gefallen...

Die Lernkurve von R ist (leider) sehr steil. Hat man aber den anfänglich sehr steilen Anstieg mal überwunden, ist man für so ziemlich alles gewappnet was Daten angeht...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten