Arbeiten mit zwei Gruppen (Likert und Histogramm)

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

allaperto
Beiträge: 10
Registriert: Mo Jan 27, 2020 2:36 pm

Re: Arbeiten mit zwei Gruppen (Likert und Histogramm)

Beitrag von allaperto »

Hallo Jörg,

Vielen Dank für deine schnelle Rückmeldung. Ich bin mal ein paar Schritte zurückgegangen und habe nun einen einfachen Likert-Plot ohne Gruppen erstellen können. Auch habe ich versucht ein Both-Object zu erstellen.

Code: Alles auswählen

g<-read.csv2("C:/Users/felix/OneDrive/Documents/R/SurveyData.csv", sep=";", dec=",", header=TRUE)
str(g)
by(g, g$Location, FUN=summary)
xtabs(~ Location + econ_comm, data=g)
tapply(g$future_persp, g$Location, FUN=table)

#Both-Object erstellen
both<-g$Location

#Convert values to factors - Nicht nötig!?
g[1:6] = lapply(g, factor, levels = 1:6)

#Create a likert object
g_likert = likert(g[1:6])

#Figure 2
plot(g_likert, ordered = FALSE, group.order = names(g[2:3]))

both_likert_2 = likert(both[, c(1:3), drop=FALSE], grouping = both$location)
plot(both_likert_2, include.histogram = TRUE)
Das müsste so passen oder? Angehängte Grafik konnte ich auswerfen. Beim Erstellen meines likert objects gibt es zwar die erste Fehlermeldung, das Erstellen von "Figure" klappt allerdings. Einen Schritt weiter kann ich dann allerdings nicht gehen...

Code: Alles auswählen

> g_likert = likert(g[1:6])
Fehler in `[.data.frame`(g, 1:6) : undefined columns selected
> #Figure 2
> plot(g_likert, ordered = FALSE, group.order = names(g[2:3]))
> both_likert_2 = likert(both[, c(1:3), drop=FALSE], grouping = both$location)
Fehler in `[.default`(both, , c(1:3), drop = FALSE) : 
  falsche Anzahl von Dimensionen
> plot(both_likert_2, include.histogram = TRUE)
Fehler in plot(both_likert_2, include.histogram = TRUE) : 
  Objekt 'both_likert_2' nicht gefunden
Dateianhänge
Rplot02.png
Rplot02.png (7.25 KiB) 313 mal betrachtet
allaperto
Beiträge: 10
Registriert: Mo Jan 27, 2020 2:36 pm

Re: Arbeiten mit zwei Gruppen (Likert und Histogramm)

Beitrag von allaperto »

Ich bin leider noch nicht weitergekommen... Kann mir jemand weiterhelfen!? Eigentlich muss ich diesen Plot ja "nurnoch" in zwei Gruppen teilen...
allaperto
Beiträge: 10
Registriert: Mo Jan 27, 2020 2:36 pm

Re: Arbeiten mit zwei Gruppen (Likert und Histogramm)

Beitrag von allaperto »

Ich habe nun die folgenden Schritte probiert:

Code: Alles auswählen

> comm_likert = likert(g[,2:3], grouping=g[,1])
Fehler in likert(g[, 2:3], grouping = g[, 1]) : 
  All items (columns) must have the same number of levels
Zusätzlich: Warnmeldung:
In likert(g[, 2:3], grouping = g[, 1]) :
  items parameter contains non-factors. Will convert to factors
sowie

Code: Alles auswählen

> plot(comm_likert)
Fehler in `$<-.data.frame`(`*tmp*`, "low", value = c(`NA` = NA_real_, NA.1 = NA_real_ : 
  replacement has 2 rows, data has 0
Leider, wie zu sehen, ohne Erfolg. Ich bin mir nicht wirklich sicher ob ich den Abschnitt

Code: Alles auswählen

#Convert values to factors
g[1:6] = lapply(g, factor, levels = 1:6)
wirklich benötige. Dieser scheint irgendwie meine Daten durcheinander zu bringen... Solangsam bin ich leider etwas verzweifelt...
allaperto
Beiträge: 10
Registriert: Mo Jan 27, 2020 2:36 pm

Re: Arbeiten mit zwei Gruppen (Likert und Histogramm)

Beitrag von allaperto »

Mit folgendem Code hat es geklappt:

Code: Alles auswählen

#Convert to factors
g <-  within(g, {
  future_persp <- factor(future_persp, levels=1:6)
  econ_comm <- factor(econ_comm, levels=1:6)
} )
comm_likert = likert(g[,2:3], grouping=g[,1])
plot(comm_likert)
Das Ergebnis freut mich sehr:
Rplot3.png
Rplot3.png (9.64 KiB) 290 mal betrachtet

Eine Formsache würde ich gerne noch ändern. Ich hätte nun gerne statt Community1 und Community2 die richtigen Namen eingesetzt. Auch würde ich gerne statt econ_comm und future_persp die komplette Frage wieder einsetzen. Und zu guter Letzt würde ich statt der Responses 1-6 gerne die richtigen Bezeichnungen wieder einsetzen, also 1 = Strongly disagree 2 = Slightly disagree 1 = Disagree usw... Das dürfte doch eigentlich nicht allzu schwer sein, oder? Weiß jemand wie ich das schnell hinbekomme?
Antworten