Variable auf zwei Ausprägungen begrenzen
Moderator: jogo
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Variable auf zwei Ausprägungen begrenzen
Hallo ,
ich hab Geschlecht mit drei Ausprägungen erhoben. Die Variable ist faktorisiert.
k$v_1 <- factor (k$v_1, levels <- c(1,2,3), labels <- c("männlich", "weiblich", "anderes"))
Wie kann ich einen Subdatensatz machen, der nur männlich (1) und weiblich (2) enthält?
k_test <- subset(k, v_1 == "weiblich", v_1 == "männlich") funktioniert nicht.
Interessieren würde mich auch: wie kann ich die Sache alternativ schreiben , dass er nur jene Probanden berücksichtigt, die v_1 nicht mit 3 (anderes) beantwortet haben?
Die Effektstärke zu berechnen erfordert nur zwei Ausprägungen. Gäbe es auch einen direkten Weg ohne Subdatensätze zu bilden?
cohen.d(k$A_ztr ~ k$v_1, paired = FALSE, na.rm = TRUE) die Bedingung nur männlich und weiblich direkt in die cohen.d Funktion zu schreiben? Für meine blutigen Anfänger-Finger wahrscheinlich zu kompliziert.....
ich danek Euch. und wüsnche ein schönes Wochenende. Martin
ich hab Geschlecht mit drei Ausprägungen erhoben. Die Variable ist faktorisiert.
k$v_1 <- factor (k$v_1, levels <- c(1,2,3), labels <- c("männlich", "weiblich", "anderes"))
Wie kann ich einen Subdatensatz machen, der nur männlich (1) und weiblich (2) enthält?
k_test <- subset(k, v_1 == "weiblich", v_1 == "männlich") funktioniert nicht.
Interessieren würde mich auch: wie kann ich die Sache alternativ schreiben , dass er nur jene Probanden berücksichtigt, die v_1 nicht mit 3 (anderes) beantwortet haben?
Die Effektstärke zu berechnen erfordert nur zwei Ausprägungen. Gäbe es auch einen direkten Weg ohne Subdatensätze zu bilden?
cohen.d(k$A_ztr ~ k$v_1, paired = FALSE, na.rm = TRUE) die Bedingung nur männlich und weiblich direkt in die cohen.d Funktion zu schreiben? Für meine blutigen Anfänger-Finger wahrscheinlich zu kompliziert.....
ich danek Euch. und wüsnche ein schönes Wochenende. Martin
- databraineo
- Beiträge: 10
- Registriert: Mo Apr 02, 2018 8:20 am
Re: Variable auf zwei Ausprägungen begrenzen
Hallo Martin,
Du musst die beiden Bedingungen mit einem logischen oder verknüpfen. Das geht in R mit dem senkrechten Strich |, also
Alternativ geht es auch mit der Negation
Bei der Funktion cohen.d kannst Du den Datensatz als Parameter data übergeben (Hilfe zur Funktion übrigens mit ?cohen.d). Dort kannst Du auch direkt das subset bilden. Man muss aber immer ein bisschen schauen, dass man nicht zu viel auf einmal macht, damit der Code lesbar bleibt.
Entweder wie oben:
oder alternativ
Hoffe, das hilft Dir weiter.
Viele Grüße und ebenso ein schönes Wochenende,
Holger
Du musst die beiden Bedingungen mit einem logischen oder verknüpfen. Das geht in R mit dem senkrechten Strich |, also
Code: Alles auswählen
k_test <- subset(k, v_1 == "weiblich" | v_1 == "männlich")
Code: Alles auswählen
k_test <- subset(k, v_1 != "anderes")
Entweder wie oben:
Code: Alles auswählen
cohen.d(k$A_ztr ~ k$v_1, data = subset(k, v_1 != "anderes"), paired = FALSE, na.rm = TRUE))
Code: Alles auswählen
cohen.d(k$A_ztr ~ k$v_1, data = k[k$v_1!="anderes",], paired = FALSE, na.rm = TRUE))
Viele Grüße und ebenso ein schönes Wochenende,
Holger
Lasst uns helfen, dass Menschen mittels Datenanalyse intelligente Entscheidungen treffen
Website: Databraineo - Data Science Blog
Twitter: @databraineo
Facebook-Gruppe: Data Science Deutschland
Website: Databraineo - Data Science Blog
Twitter: @databraineo
Facebook-Gruppe: Data Science Deutschland
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Re: Variable auf zwei Ausprägungen begrenzen
HAllo Holger , danke Dir. ich werde das heut abend ausprobieren. Grüße Martin
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Re: Variable auf zwei Ausprägungen begrenzen
Hallo Holger, die Reduzierung auf nur zwei Ausprägungen hat geklappt.
Bei Cohen d kommt eine Fehlermeldung. k_mw ist mein reduzierter Subdatensatz (in dem v_1 nur zwei Ausprägungen hat (männlich weiblich) und faktorisiert ist. k_mw$A_ztr ist Angst und metrisch.
cohen.d(k_mw$A_ztr ~ k_mw$v_1, paired = FALSE, na.rm = TRUE)
Error in cohen.d(k_mw$A_ztr ~ k_mw$v_1, paired = FALSE, na.rm = TRUE) :
unused arguments (paired = FALSE, na.rm = TRUE)
Wenn ich den vollen Datensatz mit Geschlecht v_1 drei Ausprägungen nehme:
cohen.d(k$A_ztr ~ k$v_1, data = subset(k, v_1 != "anderes"), paired = FALSE, na.rm = TRUE)
kommt diese Fehlermeldung.
unused arguments (data = subset(k, v_1 != "anderes"), paired = FALSE, na.rm = TRUE)
Was ich nicht verstehe, vor Jahren an einem Unikurs hatten wir dieses:
# CON: Zeige die standardisierte Effekstaerke fuer den Mittelwertsunterschied#
cohen.d(dat$iip_tot ~ dat$gender, paired = FALSE, na.rm = TRUE)
und es hat damals funktioniert. Ich habe jetzt den Datensatz von damals geladen und es probiert und es geht nicht mehr. Wie kann das sein? Werden Packages hin und wieder verändert? oder verhindern neue Packages, die ich damals nicht hatte, dass es funktioniert?
Grüße Martin
Bei Cohen d kommt eine Fehlermeldung. k_mw ist mein reduzierter Subdatensatz (in dem v_1 nur zwei Ausprägungen hat (männlich weiblich) und faktorisiert ist. k_mw$A_ztr ist Angst und metrisch.
cohen.d(k_mw$A_ztr ~ k_mw$v_1, paired = FALSE, na.rm = TRUE)
Error in cohen.d(k_mw$A_ztr ~ k_mw$v_1, paired = FALSE, na.rm = TRUE) :
unused arguments (paired = FALSE, na.rm = TRUE)
Wenn ich den vollen Datensatz mit Geschlecht v_1 drei Ausprägungen nehme:
cohen.d(k$A_ztr ~ k$v_1, data = subset(k, v_1 != "anderes"), paired = FALSE, na.rm = TRUE)
kommt diese Fehlermeldung.
unused arguments (data = subset(k, v_1 != "anderes"), paired = FALSE, na.rm = TRUE)
Was ich nicht verstehe, vor Jahren an einem Unikurs hatten wir dieses:
# CON: Zeige die standardisierte Effekstaerke fuer den Mittelwertsunterschied#
cohen.d(dat$iip_tot ~ dat$gender, paired = FALSE, na.rm = TRUE)
und es hat damals funktioniert. Ich habe jetzt den Datensatz von damals geladen und es probiert und es geht nicht mehr. Wie kann das sein? Werden Packages hin und wieder verändert? oder verhindern neue Packages, die ich damals nicht hatte, dass es funktioniert?
Grüße Martin
Re: Variable auf zwei Ausprägungen begrenzen
Hallo farngarten,
Verschiedene Pakete führen verschiedene Funktionen mit dem Namen cohen.de ein. Das cohen.d aus effsize kann zum Beispiel das Formula-Interface (das mit dem `~`), das aus dem Paket psych kann das nicht. Gleiches gilt für ein paired-Argument. Dann gibt es noch ein cohen.d im Paket effsize und wenn man noch ein wenig sucht, findet man bestimmt noch weitere.
https://www.rdocumentation.org/packages/effsize/versions/0.7.6/topics/cohen.d
https://www.rdocumentation.org/packages/psych/versions/1.8.12/topics/cohen.d
Also: Welche Pakete hast Du geladen, wie sehen Deine Daten aus, mach bitte ein minimales, reproduzierbares, kompelles Beispiel!
https://stackoverflow.com/help/minimal-reproducible-example
LG,
Bernhard
Könnte es sein, dass Ihr damals an der Uni regelhaft das Paket effsize verwendet habt? Alsofarngarten hat geschrieben: ↑So Sep 29, 2019 7:43 pm Was ich nicht verstehe, vor Jahren an einem Unikurs hatten wir dieses:
# CON: Zeige die standardisierte Effekstaerke fuer den Mittelwertsunterschied#
cohen.d(dat$iip_tot ~ dat$gender, paired = FALSE, na.rm = TRUE)
und es hat damals funktioniert. Ich habe jetzt den Datensatz von damals geladen und es probiert und es geht nicht mehr. Wie kann das sein?
Code: Alles auswählen
install.packages("effsize"); library(effsize)
https://www.rdocumentation.org/packages/effsize/versions/0.7.6/topics/cohen.d
https://www.rdocumentation.org/packages/psych/versions/1.8.12/topics/cohen.d
Also: Welche Pakete hast Du geladen, wie sehen Deine Daten aus, mach bitte ein minimales, reproduzierbares, kompelles Beispiel!
https://stackoverflow.com/help/minimal-reproducible-example
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Re: Variable auf zwei Ausprägungen begrenzen
Hallo Bernhard,
danke für Deine Antwort. Ja, genau. das haben wir an der Uni gehabt. In den letzten Tagen hat vieles funktioniert. zb. Interne Konsistenz für einen Haufen Skalen. Jetzt funktioniert vieles nicht mehr, obwohl der betreffende Code unverändert geblieben ist. Ich habe allerdings neue Packages hinzugeladen. Was Du schreibst ist eine Katastrophe.... jedes Package kocht sein eigene Suppe - wie soll man da als Anfänger vorankommen? Muss ich davon ausgehen , dass auch die Reihenfolge in der die Packages aufgelistet sind, Auswirkungen hat?
Anbei zwei reduzierte Mini Datensätze plus Code.
Effektstärke hat mal funktioniert jetzt Fehlermeldung. Cronbach alpha hat letzte WOche auch mal funktioniert. jetzt fehlermeldung. ....
Danke für Deine Hilfe. Martin
Ich sehe gerade, dass man gar keine R Dateien anhängen kann.
setwd("C:/users/user/Desktop/RDaten/")
library(effsize)
library(psych)
library(car)
library(foreign)
library(Hmisc)
library(lm.beta)
library(sjPlot)
library(sjmisc)
library(sjstats)
library(sjlabelled)
library(foreign)
library(mosaic)
library(psych)
library(lavaan)
library(semTools)
library(readr)
library(haven)
library(readxl)
library(rockchalk)
library(glmnet)
library(lme4)
library(lmtest)
library(lavaan)
library(pbkrtest)
library(MuMIn)
library(InformationValue)
library(BaylorEdPsych)
library(pROC)
library(dplyr)
library(gapminder)
library(plotly)
library(ggplot2)
library(broom)
library(scatterplot3d)
k <- read.table("K_demo2.csv", sep = ";", header = TRUE, na = -77)
# ENV: Definiere 'v_1' Geschlecht als kategorial und füge Labels hinzu
k$v_1 <- factor (k$v_1, levels <- c(1,2,3), labels <- c("männlich", "weiblich", "anderes"))
########### I T E M S Z U S A M E N F A S S E N ##############################
k$A <- rowMeans(k[,c("a_a", "a_b", "a_c", "a_d", "a_e", "a_f", "a_g")])
#### S T A N D A R D I S I E R E N zentrieren UND z-transformieren ##########################################
############################################################################
k$A_ztr <- as.numeric(scale(k$A, center = TRUE, scale = TRUE))
k_mw <- subset(k, v_1 == "weiblich" | v_1 == "männlich") #anderes GEschlecht ausschließen#
####### E F F E K T S T R Ä K E Z W I S C H E N G R U P P E N ##########
# Effekstärke für den Mittelwertsunterschied bei Angst zw GEschlechtern#
cohen.d(k_mw$A_ztr ~ k_mw$v_1, paired = FALSE, na.rm = TRUE, hedges = TRUE)
cohen.d(k$A_ztr ~ k$v_1, data = subset(k, v_1 != "anderes"), paired = FALSE, na.rm = TRUE)
cohen.d(k_mw$A_ztr, k_mw$v_1, paired = FALSE, na.rm = TRUE)
danke für Deine Antwort. Ja, genau. das haben wir an der Uni gehabt. In den letzten Tagen hat vieles funktioniert. zb. Interne Konsistenz für einen Haufen Skalen. Jetzt funktioniert vieles nicht mehr, obwohl der betreffende Code unverändert geblieben ist. Ich habe allerdings neue Packages hinzugeladen. Was Du schreibst ist eine Katastrophe.... jedes Package kocht sein eigene Suppe - wie soll man da als Anfänger vorankommen? Muss ich davon ausgehen , dass auch die Reihenfolge in der die Packages aufgelistet sind, Auswirkungen hat?
Anbei zwei reduzierte Mini Datensätze plus Code.
Effektstärke hat mal funktioniert jetzt Fehlermeldung. Cronbach alpha hat letzte WOche auch mal funktioniert. jetzt fehlermeldung. ....
Danke für Deine Hilfe. Martin
Ich sehe gerade, dass man gar keine R Dateien anhängen kann.
setwd("C:/users/user/Desktop/RDaten/")
library(effsize)
library(psych)
library(car)
library(foreign)
library(Hmisc)
library(lm.beta)
library(sjPlot)
library(sjmisc)
library(sjstats)
library(sjlabelled)
library(foreign)
library(mosaic)
library(psych)
library(lavaan)
library(semTools)
library(readr)
library(haven)
library(readxl)
library(rockchalk)
library(glmnet)
library(lme4)
library(lmtest)
library(lavaan)
library(pbkrtest)
library(MuMIn)
library(InformationValue)
library(BaylorEdPsych)
library(pROC)
library(dplyr)
library(gapminder)
library(plotly)
library(ggplot2)
library(broom)
library(scatterplot3d)
k <- read.table("K_demo2.csv", sep = ";", header = TRUE, na = -77)
# ENV: Definiere 'v_1' Geschlecht als kategorial und füge Labels hinzu
k$v_1 <- factor (k$v_1, levels <- c(1,2,3), labels <- c("männlich", "weiblich", "anderes"))
########### I T E M S Z U S A M E N F A S S E N ##############################
k$A <- rowMeans(k[,c("a_a", "a_b", "a_c", "a_d", "a_e", "a_f", "a_g")])
#### S T A N D A R D I S I E R E N zentrieren UND z-transformieren ##########################################
############################################################################
k$A_ztr <- as.numeric(scale(k$A, center = TRUE, scale = TRUE))
k_mw <- subset(k, v_1 == "weiblich" | v_1 == "männlich") #anderes GEschlecht ausschließen#
####### E F F E K T S T R Ä K E Z W I S C H E N G R U P P E N ##########
# Effekstärke für den Mittelwertsunterschied bei Angst zw GEschlechtern#
cohen.d(k_mw$A_ztr ~ k_mw$v_1, paired = FALSE, na.rm = TRUE, hedges = TRUE)
cohen.d(k$A_ztr ~ k$v_1, data = subset(k, v_1 != "anderes"), paired = FALSE, na.rm = TRUE)
cohen.d(k_mw$A_ztr, k_mw$v_1, paired = FALSE, na.rm = TRUE)
- Dateianhänge
-
- k_demo1.csv
- (4.41 KiB) 69-mal heruntergeladen
-
- k_demo2.csv
- (5.86 KiB) 71-mal heruntergeladen
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Re: Variable auf zwei Ausprägungen begrenzen
für die Datei demo1 hab ich dieses:
setwd("C:/users/user/Desktop/RDaten/")
library(effsize)
library(psych)
library(car)
library(foreign)
library(Hmisc)
library(lm.beta)
library(sjPlot)
library(sjmisc)
library(sjstats)
library(sjlabelled)
library(foreign)
library(mosaic)
library(psych)
library(lavaan)
library(semTools)
library(readr)
library(haven)
library(readxl)
library(rockchalk)
library(glmnet)
library(lme4)
library(lmtest)
library(lavaan)
library(pbkrtest)
library(MuMIn)
library(InformationValue)
library(BaylorEdPsych)
library(pROC)
library(dplyr)
library(gapminder)
library(plotly)
library(ggplot2)
library(broom)
library(scatterplot3d)
k <- read.table("k_demo1.csv", sep = ";", header = TRUE, na = -77)
###################################################################################
#### I N T E R N E K O N S I S T E N Z #######################################
###### B I G F I V E nach SKALEN '' #########
attach(k)
extra <- data.frame(e_a, e_b, e_c, e_d)
alpha(extra, check.keys = TRUE)
setwd("C:/users/user/Desktop/RDaten/")
library(effsize)
library(psych)
library(car)
library(foreign)
library(Hmisc)
library(lm.beta)
library(sjPlot)
library(sjmisc)
library(sjstats)
library(sjlabelled)
library(foreign)
library(mosaic)
library(psych)
library(lavaan)
library(semTools)
library(readr)
library(haven)
library(readxl)
library(rockchalk)
library(glmnet)
library(lme4)
library(lmtest)
library(lavaan)
library(pbkrtest)
library(MuMIn)
library(InformationValue)
library(BaylorEdPsych)
library(pROC)
library(dplyr)
library(gapminder)
library(plotly)
library(ggplot2)
library(broom)
library(scatterplot3d)
k <- read.table("k_demo1.csv", sep = ";", header = TRUE, na = -77)
###################################################################################
#### I N T E R N E K O N S I S T E N Z #######################################
###### B I G F I V E nach SKALEN '' #########
attach(k)
extra <- data.frame(e_a, e_b, e_c, e_d)
alpha(extra, check.keys = TRUE)
Re: Variable auf zwei Ausprägungen begrenzen
Um Gottes Willen. Niemals brauchst Du soviele "library"-Aufrufe. Da solltest Du mal ganz gründlich ausmisten und nur drin lassen, was Du brauchst. Und das wird weniger sein, als Du denkst. Eigentlich will ich Dir das hier gar nicht verraten. Erst nach diesem Ausmisten !!! kannst Du Funktionen auch unter Angabe des zugehörigen Pakets ansprechen, etwa
Vielleicht solltest Du Dir das auch generell angewöhnen, wenn Du weiter in Paketen schwelgen willst.
LG,
Bernhard
Code: Alles auswählen
psych::cohen.d(...)
effsize::cohen.d(...)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 78
- Registriert: Fr Dez 08, 2017 6:42 am
Re: Variable auf zwei Ausprägungen begrenzen
Hallo Bernhartd ,
ich danke Dir! Eine grundsäztzliche Fehleinschätzung von mir. Ich dachte, es sei komfortabler, wenn ich alles im Kasten hab , was ich jemals brauchen könnte. Dahinter steht der Gedanke, dass ich gern draußen arbeite, ohne Internet.
Irgendwie blöd, dass bei einem Uni-Einiführungskurs, dieser Punkt mit keiner Silbe erwähnt wird.
Danke und Grüße Martin
ich danke Dir! Eine grundsäztzliche Fehleinschätzung von mir. Ich dachte, es sei komfortabler, wenn ich alles im Kasten hab , was ich jemals brauchen könnte. Dahinter steht der Gedanke, dass ich gern draußen arbeite, ohne Internet.
Irgendwie blöd, dass bei einem Uni-Einiführungskurs, dieser Punkt mit keiner Silbe erwähnt wird.
Danke und Grüße Martin