Seite 1 von 2

Fehlermeldung "type mismatch"

BeitragVerfasst: Mo 20. Jun 2022, 09:35
von Luka
Hallo Zusammen,

wenn ich folgenden Befehl ausführe kommt folgender Fehlermeldung :

gen var=date(var1, "YMD")
type mismatch

Wie gehe ich mit diesem Fehler um?

Vielen Dank im Voraus!

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Mo 20. Jun 2022, 09:36
von Staxa
Code: Alles auswählen
help date

"s1 contains the date, recorded as a string"

var1 muss in diesem Fall eine Stringvariable sein.

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Mo 20. Jun 2022, 16:53
von Luka
Ich habe wieder das Problem, allerdings lässt sich dieses nicht mit einer Umwandlung einer Variable in string lösen. Var 1 ist eine stringvariable aber var2 kann nicht in string umgewandelt werden. Es kommt wieder die Fehlermeldung "type mismatch". Was ich hier versuche zu machen ist aus 2 Variablen eine zu erstellen, die eine Kombination aus den beiden ist.
So lautet mein Befehl:
generate var3 = var1tr + " " + var2

Wie kann ich diesen Fehler beheben?

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Mo 20. Jun 2022, 18:11
von Staxa
Was ist denn Var2 für eine Variable?

Möglich etwa:

Code: Alles auswählen
generate var3 = var1tr + " " + string(var2)

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Mo 20. Jun 2022, 19:54
von Luka
Ich gerade noch ein Fehler festgestellt und zwar Var1tr, die sollte die Stringvariable darstellen enthält komische Werte, wie z.B.:
Var1 Var2tr
02jan2015 20585

Ich kann nur Var1 im Format 2015-01-02 bringen, Var2tr kann ich nicht in dem Format bringen
Im Prinzip muss ich eine Datumsvariable erstellen mit Var1 und wollte ich mit gen var =date(Var1, "YMD")
Aber es kommt die Fehlermeldung "type mismatch" .

Ich brauche dringend Hilfe, ich verstehe nicht warum diese Codes bei mir nicht funktionieren.

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Mo 20. Jun 2022, 19:58
von Luka
Var1tr stellt die Stringdatumsvariable, Type str5, Format %9s
Var2 ist eine Zeitvariable gegeben in Stunden Minuten und Sekunden wie zum Beispiel 00:20:53, Type double, Format %tcHH:MM:SS

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Di 21. Jun 2022, 08:50
von Staxa
Vielleicht willst du mal ein Datenbeispiel zeigen mittels dataex.

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Di 21. Jun 2022, 09:41
von Luka
Anwendung von dataex:

* Example generated by -dataex-. For more info, type help dataex
clear
input long Var1 str5 Var1str
20831 "20831"
20849 "20849"
20849 "20849"
20849 "20849"
20859 "20859"
20860 "20860"
20864 "20864"
20867 "20867"
20901 "20901"
20907 "20907"
20914 "20914"
20934 "20934"
20935 "20935"
20935 "20935"
20935 "20935"

wenn ich describe verwende:

Var1 long %td
Var1str str5 %9s

wenn ich browse:

Var1 Var1str
12jan2017 20831
30jan2017 20849
30jan2017 20849
30jan2017 20849
09feb2017 20859


Also nochmal, das Hauptproblem ist, dass ich Var1 in string umwandeln möchte, damit der Befehl gen var = date(Var1,"YMD") funktioniert. Aber die Stringvariable Var1str enthält komische Werte und kann auch das Format der Stringvariable nicht ändern.

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Di 21. Jun 2022, 10:25
von Staxa
Dann wandel doch zuerst den String in eine Zahl:

Code: Alles auswählen
destring Var1str, replace force


format Varstr1 %td

Und was genau willst du damit nun berechnen? Das sind jetzt jeweils 2 Daten.

Re: Fehlermeldung "type mismatch"

BeitragVerfasst: Di 21. Jun 2022, 10:36
von Luka
ich will diesen Befehl ausführen: gen var = date(Var1,"YMD")
wegen Fehlermeldung type mismatch, meintest du Var1 muss string sein. Wenn ich tostring Var1 nehme, kommen da keine richtigen Werte raus (siehe obige Beschreibung)