Anzeige:
Ergebnis 1 bis 3 von 3

Thema: [R-Project] Fehler in Funktion ?

  1. #1
    KayJ
    Gast

    [R-Project] Fehler in Funktion ?

    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!

  2. #2
    Registrierter Benutzer Avatar von sofa-surfer
    Registriert seit
    23.05.2006
    Beiträge
    2.032
    Hallo,

    wenn ich dich richtig verstehe, dann kannst du für dein Problem doch z.B. die table-Funktion nutzen:
    Code:
    > 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

  3. #3
    KayJ
    Gast
    Huhu,

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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •