Seite 1 von 1

Ein Wert von einer Variable umbenennen

Verfasst: Fr Okt 06, 2023 12:11 am
von joml13
Guten Abend,

bei der Datenerhebung ist Kommilitonen bei zwei Probanden ein Fehler unterlaufen. Die Studie ist eingeteilt in: Fragebogen und Laborexperiment.
D.h. Proband hat die Nummer 100. Die hat er dann im Fragebogen und im Laborexperiment, sodass man die Daten miteinander verknüpfen kann (es sollen Korrelationen gemacht werden).
Nun hat man 1. einem Probanden mit der Nummer 100 im Fragebogen die Nummer 202 im Laborexperiment zugeordnet und 2. gab es zwei Probanden mit der Nummer 200 im Fragebogen, wobei einer im Laborexperiment dann die Nummer 201 bekommen hat (Im Fragebogen gibt es eine so genannte CASE Zahl, mit derer identifiziert werden kann, welche 200er Nummer vom Fragebogen zu der 201 gehört.

Jetzt ist meine Frage: Mit welchem Befehl in R kann ich bei 1. die Nummer 100 in 202 umändern/umbenennen? Und bei 2. wie kann ich R klar machen, dass der Proband mit der Case Zahl X (weiß sie gerade nicht) die Probandennummer (die Variable heißt REF) 201 haben soll oder ist es besser den Befehl von 1. dann zu nehmen und zusätzlich R zu sagen, dass er die 200 in Zeile X zu 201 umbenennen soll? ist das überhaupt möglich?

Liebe Grüße
joml13

Re: Ein Wert von einer Variable umbenennen

Verfasst: Fr Okt 06, 2023 1:27 pm
von jogo
Hallo joml13,

Du kannst die Funktion edit() nutzen.
Das geht beispielsweise so:

Code: Alles auswählen

Daten <- cars
D <- edit(Daten)
D
Wenn man genau weiß, wo die Änderung stattfinden soll kann, der geänderte Wert auch direkt eingetragen werden, z.B.

Code: Alles auswählen

Daten[8, "speed"] <- 4242
Daten
Gruß, Jörg

Re: Ein Wert von einer Variable umbenennen

Verfasst: Fr Okt 06, 2023 1:46 pm
von bigben
Hallo joml13,

ich rate dazu, Funktionen wie edit() möglichst zu vermeiden, und alle Schritte die Du machst in einem Skript zu hinterlegen. So sind sie leicht nachvollziehbar, wenn man später neue Daten dazu bekommt oder aus anderen Gründen nochmal nachrechnen muss.

Ich würde daher Deine Schritte so angehen:

Code: Alles auswählen

# Erstmal Beispieldaten schaffen und anzeigen
labor <- data.frame(case = 232305:232315,
                    nummer  = 99:109,
                    value = round(rnorm(11),3))
head(labor)
#>     case nummer  value
#> 1 232305     99 -1.716
#> 2 232306    100 -0.354
#> 3 232307    101 -0.586
#> 4 232308    102  0.035
#> 5 232309    103  1.372
#> 6 232310    104 -0.393

# Benenne die Nummer 100 in 202 um
zeile <- which(labor$nummer == 100)
labor[zeile, "nummer"] <- 202

head(labor)
#>     case nummer  value
#> 1 232305     99 -1.716
#> 2 232306    202 -0.354
#> 3 232307    101 -0.586
#> 4 232308    102  0.035
#> 5 232309    103  1.372
#> 6 232310    104 -0.393

# Gebe dem case 232307 die Nummer 201

zeile <- which(labor$case == 232307)
labor[zeile, "nummer"] <- 201

head(labor)
#>     case nummer  value
#> 1 232305     99 -1.716
#> 2 232306    202 -0.354
#> 3 232307    201 -0.586
#> 4 232308    102  0.035
#> 5 232309    103  1.372
#> 6 232310    104 -0.393
LG,
Bernhard

Re: Ein Wert von einer Variable umbenennen

Verfasst: Sa Okt 07, 2023 1:32 pm
von joml13
Dankeschön!
Das hat super geklappt! Das war echt meine Rettung!

Liebe Grüße
joml13
bigben hat geschrieben: Fr Okt 06, 2023 1:46 pm Hallo joml13,

ich rate dazu, Funktionen wie edit() möglichst zu vermeiden, und alle Schritte die Du machst in einem Skript zu hinterlegen. So sind sie leicht nachvollziehbar, wenn man später neue Daten dazu bekommt oder aus anderen Gründen nochmal nachrechnen muss.

Ich würde daher Deine Schritte so angehen:

Code: Alles auswählen

# Erstmal Beispieldaten schaffen und anzeigen
labor <- data.frame(case = 232305:232315,
                    nummer  = 99:109,
                    value = round(rnorm(11),3))
head(labor)
#>     case nummer  value
#> 1 232305     99 -1.716
#> 2 232306    100 -0.354
#> 3 232307    101 -0.586
#> 4 232308    102  0.035
#> 5 232309    103  1.372
#> 6 232310    104 -0.393

# Benenne die Nummer 100 in 202 um
zeile <- which(labor$nummer == 100)
labor[zeile, "nummer"] <- 202

head(labor)
#>     case nummer  value
#> 1 232305     99 -1.716
#> 2 232306    202 -0.354
#> 3 232307    101 -0.586
#> 4 232308    102  0.035
#> 5 232309    103  1.372
#> 6 232310    104 -0.393

# Gebe dem case 232307 die Nummer 201

zeile <- which(labor$case == 232307)
labor[zeile, "nummer"] <- 201

head(labor)
#>     case nummer  value
#> 1 232305     99 -1.716
#> 2 232306    202 -0.354
#> 3 232307    201 -0.586
#> 4 232308    102  0.035
#> 5 232309    103  1.372
#> 6 232310    104 -0.393
LG,
Bernhard