2012-04-06 3 views
1

ich eine Tabelle wie folgt geladen:In R, wie könnte ich Spalten in einer Tabelle durchlaufen und Berechnungen basierend auf dem Spaltennamen durchführen?

sum(mydata$COLUMN1_NAME == "")/nrow(mydata) 

Aber ich habe viele Spalten:

mydata <- read.table("c:\\file.tab", header=TRUE, sep="\t", quote="\"") 

ich den Prozentsatz der leeren Einträge in der Spalte COLUMN1_NAME wie so berechnen kann. Ich möchte eine Möglichkeit zum Schleifen werfen und diesen Prozentsatz für jede Spalte berechnen, anstatt die obige Zeile zu kopieren und einzufügen und den Spaltennamen manuell zu ändern. Ich bin ziemlich neu zu R, so dass jede Hilfe geschätzt wird.

Antwort

2

Verwenden Sie die eckigen Klammern mit einer Nummer anstelle eines Namens.

i <- 1 

sum(sum(mydata[[i]] == "")/nrow(mydata) 

Etc.

Siehe ?Extract. Auch Sie könnten die Namen programmatisch und arbeiten mit denen, aber es ist nur ein zusätzlicher Schritt:

i <- 1 
nms <- names(mydata) 
sum(mydata[[nms[i]]] == "")/nrow(mydata) 
+0

Sie auch zu prüfen, '% in% möchten' statt '==' wie es ist mehr verlängerbar in passende gegen eine Vektor. –

Verwandte Themen