Werte zweier Spalten zusammenführen

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

Moderatoren: EDi, jogo

Antworten
Dafmen
Beiträge: 14
Registriert: Sa Nov 02, 2019 1:37 pm

Werte zweier Spalten zusammenführen

Beitrag von Dafmen »

Paket "dabestr"

Guten Abend liebe Gemeinde,

ich versuche mich schon eine Weile an folgendem Problem (Beispieldatensatz siehe Anhang).
Mit diesem netten Paket kann man sich statistisch relativ schnell einen komfortablen Überblick schaffen bzw. die Statistik insgesamt berechnen.
Nun funktioniert mein Vorhaben mit dem folgenden Code perfekt, es werden Daten der Variante "Pauletta" und "BTS" berechnet sowie angezeigt

Code: Alles auswählen

dataset %>%
  dabest(F_1, LAI2, 
         idx =c("Pauletta","BTS"),
         paired = FALSE)
Allerdings handelt es sich um einen zweifaktoriellen Versuch, deswegen soll auch die Interkation der Varianten (der "Pauletta" und der "BTS") eine Rolle spielen:
Miteinander verglichen werden sollen:
Pauletta 30, Pauletta 45, Pauletta 60, Pauletta 90
und
BTS 30, BTS 45, BTS 60, BTS 90


Mein Ziel war daher, die "Faktoren" der Spalten F_1 und F_2 zu kombinieren, jedoch weiß ich nicht wie.
Die Zahlen von F_2 werden noch als Nummern erkannt, habe sie allerdings mit

Code: Alles auswählen

dataset$F_2 <- as.factor(dataset$F_2)
in einen Faktor umgewandelt

Momentan, nach unendlichen Versuchen, sieht mein Code so aus und ist natürlich falsch.

Code: Alles auswählen

  dataset %>%
  dabest(F_1+F_2, LAI2, 
         idx = list(c("Pauletta"+"30", "Pauletta"+"45","Pauletta"+"60","Pauletta"+"90"), 
                    c("BTS"+"30", "BTS"+"45","BTS"+"60","BTS"+"90")),
         paired = FALSE
         )
Neben der einmaligen "Zusammenführung" der Spaltenwerte um eine "neue" Variable zu erstellen, möchte ich auch fragen, wie man den Befehl richtig schreibt.


Der Grundlegende Code sollte so aussehen, wobei die dazugehörige Beispielgrafik im Anhang unter "Unbenannt.png" zu finden ist.

Code: Alles auswählen

  dataset %>%
  dabest(Group, Measurement, 
         idx = list(c("Control1", "Group1"), 
                    c("Control2", "Group2")),
         paired = FALSE
         )
Ich wäre euch wirklich sehr dankbar, wenn ihr mir helfen könntet.

Viele Grüße
Dateianhänge
Unbenannt.PNG
Beispiel.csv
(1014 Bytes) 25-mal heruntergeladen
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Werte zweier Spalten zusammenführen

Beitrag von jogo »

Hallo Sebastian,

meinst Du sowas:

Code: Alles auswählen

Dat <- read.csv2("http://forum.r-statistik.de/download/file.php?id=764")
summary(aov(LAI2 ~ factor(F_2), data=Dat, subset=F_1=="Pauletta"))
summary(aov(LAI2 ~ factor(F_2), data=Dat, subset=F_1=="BTS"))
:?:

Gruß, Jörg
Dafmen
Beiträge: 14
Registriert: Sa Nov 02, 2019 1:37 pm

Re: Werte zweier Spalten zusammenführen

Beitrag von Dafmen »

Hallo Jörg,

ehrlicherweise ist das nicht das, was ich meine.
Ich füge mal den Link zur Seite an, von der ich den Befehl habe:
https://cran.r-project.org/web/packages ... bestr.html

Mir geht es darum, das ich einen Vergleich zwischen "Pauletta" und "BTS" brauche, welchen ich mit folgendem Befehl erzeuge:

Code: Alles auswählen

two.group.unpaired<-
  dataset %>%
  dabest(F_1, LAI2, 
         idx =c("Pauletta","BTS"),
         paired = FALSE)
two.group.unpaired
plot(two.group.unpaired)
Im zweiten Schritt sollen die verschiedenen Faktoren von F_2 mit F_1 verknüpft werden um diese zu vergleichen.
Also einen Vergleich zwischen Pauletta 30, Pauletta 45, Pauletta 60, Pauletta 90 sowie das ebengleiche für BTS
Wenn ich in Excel F_1 und F_2 zusammenschreibe, also z.B. "Pauletta 30" usw. in der Spalte F_1 steht, funktioniert das auch (Grafik im Anhang, dazugehöriger Code ganz unten).
Jedoch bin ich mir sicher, dass die "Fusion" von F_1 und F_2 auch recht komfortabel mit R möglich ist, statt mit Excel.

Mit dem Befehl subset funktioniert es leider nicht.

Danke für deine Antwort und Gruß,
Sebastian

Das Paket heißt dabestr


Code für die Grafik

Code: Alles auswählen

Grafik<-
  dataset %>%
  dabest(F_1, LAI2, 
         idx =list(c("Pauletta 45","Pauletta 30", "Pauletta 60", "Pauletta 90"),
         c("BTS 45", "BTS 30", "BTS 60", "BTS 90")),
         paired = FALSE)
Grafik
plot(Grafik)
Dateianhänge
Beispiel.PNG
Dafmen
Beiträge: 14
Registriert: Sa Nov 02, 2019 1:37 pm

Re: Werte zweier Spalten zusammenführen

Beitrag von Dafmen »

Nachtrag:

Folgender Code kombiniert die beiden Faktoren wie ich es brauche (einziger Nachteil: man sieht den ":" zwischen beiden Faktoren)

Code: Alles auswählen

dataset$F_1:dataset$F_2
Ich hab das jetzt wie folgt in den Befehl eingegeben:

Code: Alles auswählen

both <- 
  dataset %>%
  dabest(dataset$F_1:dataset$F_2,LAI2, 
         idx = list(c("Pauletta:45","Pauletta:30","Pauletta:60","Pauletta:90"),
                    c("BTS:45","BTS:30","BTS:60","BTS:90")),
         paired = FALSE)
both
plot(both)
Ich denke, dass es jetzt an dem Subbefehl "idx" scheitert.. Momentan wird "Pauletta:45" nicht gefunden:

Code: Alles auswählen

Error in dabest(., dataset$F_1:dataset$F_2, LAI2, idx = list(c("Pauletta:45",  : 
  Pauletta:45 is not found in the dataset$F_1:dataset$F_2 column.
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Werte zweier Spalten zusammenführen

Beitrag von jogo »

Dann vielleicht so:

Code: Alles auswählen

library("dplyr")
library("dabestr")
dataset <- read.csv2("http://forum.r-statistik.de/download/file.php?id=764")
dataset$F12 <- paste0(dataset$F_1, ':', dataset$F_2)

dataset %>% dabest(F12, LAI2, idx = list(unique(dataset$F12)), paired = FALSE)
oder

Code: Alles auswählen

dataset %>% dabest(F12, LAI2, idx = list(paste0("Pauletta:", c(30,45,60,90)), paste0("BTS:", c(30,45,60,90))), paired = FALSE)
Gruß, Jörg
Dafmen
Beiträge: 14
Registriert: Sa Nov 02, 2019 1:37 pm

Re: Werte zweier Spalten zusammenführen

Beitrag von Dafmen »

oder

Code: Alles auswählen

dataset %>%
                     dabest(F12, LAI2, 
                     idx = list(paste0("Pauletta:", c(30,45,60,90)), 
                     paste0("BTS:", c(30,45,60,90))), 
                     paired = FALSE)
Perfekt, danke! Das ist genau das, was ich gesucht habe.

Danke vielmals und Gruß,
Sebastian
Antworten