Konvertiere "Charakter" -Matrix in "logisch"

7

Ich habe eine Matrix (mit Werten von class character wie dieser:

%Vor%

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?

    
alexis_laz 24.10.2013, 14:55
quelle

4 Antworten

14

Versuchen Sie Folgendes:

%Vor%

Wenn mat ein data.frame sein soll, das aus logischen Werten besteht, dann:

%Vor%     
Jilber Urbina 24.10.2013, 15:03
quelle
3

NA ist eine logische Konstante, deshalb muss es Wahrheitstabellengesetze befolgen. Wir können diese nutzen, um ... zu tun.

%Vor%

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.

    
Simon O'Hanlon 24.10.2013 15:29
quelle
3

mat!="0" & ​​amp; mat!="FALSCH"

%Vor%     
syrnick 17.03.2014 23:45
quelle
0

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

    
Francisco López-Sancho 11.11.2014 11:39
quelle

Tags und Links