Ich habe eine Matrix (mit Werten von class
character
wie dieser:
und ich muss es in eine Matrix wie folgt umwandeln:
%Vor% as.logical
gibt NA
s an "zeichen-numerische" Werte aus, während as.numeric
NA
s an "zeichenlogische" Werte ausgibt.
Ich habe eine Lösung gefunden, aber ich glaube, mir fehlt etwas offensichtlich Offensichtliches bezüglich einer sofortigen Umwandlung:
%Vor%Irgendwelche Vorschläge?
Versuchen Sie Folgendes:
%Vor% Wenn mat
ein data.frame sein soll, das aus logischen Werten besteht, dann:
NA
ist eine logische Konstante, deshalb muss es Wahrheitstabellengesetze befolgen. Wir können diese nutzen, um ... zu tun.
Dies funktioniert nur , wenn Sie NA
nicht in Ihrer ursprünglichen Matrix haben, weil wir uns darauf verlassen, dass NA
selbst eine logische Konstante ist. Wenn ein gegebener Wert FALSE
ist, wird as.logical
zu TRUE
ausgewertet, kann aber auch nicht ( &
) as.integer
sein, also wird FALSE
geben. Wenn es% co_de ist% "0"
wird als as.logical
ausgewertet, während NA
als as.integer > 0
ausgewertet wird. FALSE
& amp; NA
ergibt FALSE
. Die beiden FALSE-Bedingungen sind erfüllt, daher muss FALSE
muss NA
sein.
Das direkteste, das ich kenne, wäre:
as.numeric(factor(matrix))
wobei 'matrix' der Name der Matrix ist, die wir in numerisch ändern möchten