PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [R-Project] Fehler in Funktion ?



KayJ
05-06-2007, 14:17
Hi,

ich lese Daten aus einer *.csv Datei so, dass diese dann in der Form
"id1" "id"
0 23
0 39
0 40
3 11
3 68
4 1
... vorliegen. Ich versuch grad eine Funktion zu schreiben, der man diese Liste übergibt und den Namen deren Werte gezählt werden sollen. Also in der Form:
count <- function(mat, colname)
Gleiche Einträge sollen nur einmal gezählt werden. Heißt das Ergebnis des Beispiels wäre 3.

Allerdings gibt mir die Funktion beim Aufruf von "count(test, userid)" folgenden Fehlerm zurück:
"Fehler in (function(x, i) if (is.matrix(i)) as.matrix(x)[[i]] else .subset2(x, :
objekt "userid" nicht gefunden"

Jemand ne Idee woran es liegen könnte? Hier die Funktion:

count <- function(mat, colname){
#laeuft durch
i <- 1;
# zaehlt user
value <- 1;
# initialisiert mit erstem Datenwert
tempold <- mat[[colname]][i];
# anzahl der eintraege in matrix-attribut <colname>
lng <- length(mat[[colname]]);

while(i <= lng){
temp <- mat[[colname]][i];
if(temp != tempold){
value <- value + 1;
tempold <- temp;
}
i <- i + 1;
}
value
}


Danke schonmal für Hilfe! :)

sofa-surfer
05-06-2007, 17:22
Hallo,

wenn ich dich richtig verstehe, dann kannst du für dein Problem doch z.B. die table-Funktion nutzen:


> a<-c(1,1,1,4,5,6,6)
> length(table(a))


Wenn ich mich täusche, dann gib doch mal bitte genau an, in welchem Format die betreffenden Daten vorliegen (str(test))

Matthias

KayJ
06-06-2007, 14:09
Huhu,

klasse, danke! Diese Funktion war mir noch nicht bekannt. Bin noch Anfänger auf dem Gebiet... Besten Dank!