2017-04-06 1 views
1

die folgende Umfragedaten vor:Fall löschen weise von Werten innerhalb cor() in R

data <- replicate(10 ,sample(c(1,2,3,4), 1000, replace = TRUE)) %>% 
    as.data.frame() 

V1:V9 Variablen sind, wo 1 = "Good", 2 = "Okey" und 3 = "Not Good" und 4 = "Don't know" während V10 ist eine Ordnungs Variable wo 1 = "Good", 2 = "Not good", 3 = "Don't know" und 4 = "Don't want to answer".

Ich interessiere mich für die Berechnung einer einfachen Korrelationsmatrix mit cor() für diese Variablen. Ich will es aber nur zwischen den Werten berechnen, die eigentlich etwas bedeuten. Das heißt, 1,2,3 für V1:V9 und 1,2 für V10.

Mit anderen Worten, ich mag ein Fall weise von Wert > 3 für V1:V9 und das gleiche für alle Werte > 2 für V10 innerhalb der cor() Funktion löschen.

Dies wäre ähnlich wie die Verwendung Argument?

Die einzige Möglichkeit, die ich gelöst habe, ist, diese Werte als NA zu mutieren.

Aber gibt es einen besseren Weg, der nicht unbedingt auf die Änderung der Daten angewiesen ist.

PS. Es gibt natürlich geeignetere Möglichkeiten, die Korrelation zwischen ordinalen Variablen zu berechnen.

+1

Relevante Beiträge: [hier] (http://stats.stackexchange.com/questions/108007) und [hier] (http://datascience.stackexchange.com/questions/893) – zx8754

Antwort

0

Die Antwort auf diese Frage war einfacher als ich dachte.

Wie @ zx8754 darauf hinweist, sollten Sie bei der Auswahl der Korrelationsmethode für kategoriale Variablen vorsichtig sein.

Anyways, die Sie gerade use = "pairwise.complete.obs" in cor()

jedoch ändern, Sie müssen noch 4-NA mutieren.