wake-up-neo.com

R - Fehler in UseMethod ("groups"): keine anwendbare Methode für "groups", die auf ein Objekt der Klasse "character" angewendet werden

Ich habe "count" verwendet, um die Spalte eines Datenrahmens zusammenzufassen. Die Spalte (dataset$Nationality) besteht aus Nationalitäten, die mehrmals vorkommen können (zB Schweizer, Deutsche, Franzosen, Schweizer usw.). Es hat gut funktioniert, bis heute plötzlich eine Fehlermeldung ausgegeben wurde: 

Fehler in UseMethod ("groups"): Keine anwendbare Methode für "groups" auf ein Objekt der Klasse "Zeichen" angewendet.

Ich habe Dplyr neu installiert, aber es hat immer noch nicht funktioniert.

Zum Beispiel:

dataset$Nationality consists of c("Swiss", "French","German","Swiss")

dann

count(dataset$Nationality) 

würde sowas geben

Swiss,2, French, 1, German,1

Kann mir jemand sagen, was ich tun kann, damit es wieder funktioniert?

Danke vielmals!

5
thixio

Hoffe das beantwortet Deine Frage.

Wenn Sie "plyr" -Bibliothek verwenden, library(plyr)

Korrekte Syntax: count(dataset$Nationality)

Wenn Sie "dplyr" -Bibliothek verwenden, library(dplyr)

Korrekte Syntax: count(dataset, Nationality)

Wenn Sie Both verwenden, müssen Sie die Syntax der zuletzt hinzugefügten Bibliothek verwenden.

Hinzufügen, was Dzej vorgeschlagen hat:

Wir können auch eine bestimmte Bibliothek verwenden.

Syntax für die direkte Verwendung von dplyr: dplyr::count(dataset, Nationality)

Syntax für die direkte Verwendung von plyr: plyr::count(dataset$Nationality)

8
Ankit Gupta

Ich schreibe, was ich fühle, ist eine umfassendere Antwort, die das kombiniert, was Ankit und Aosmith gesagt und hinzugefügt haben.

count() im dplyr-Paket kann aus zwei verschiedenen Kontexten aufgerufen werden. Das erste ist, was Aosmith und Ankit vorgeschlagen haben, die count() mit dem Datenrahmen als erstem Argument aufruft, gefolgt von der (den) Variablen, die Sie zählen möchten, getrennt durch Kommas.

count(df, var1)

oder

count(df, var1, var2)

Die zweite Möglichkeit, dies zu tun, ist die Verwendung der R-Pipe (%>%), um den Datenrahmen an count() zu übergeben.

df %>% count(var1)

oder

df %>% count(var1, var2)

Wenn der Datenrahmen nicht in einem der beiden Kontexte bereitgestellt wird, führt dies zu dem in der Frage angezeigten Fehler "Keine anwendbare Methode".

2
Ethan Hohensee

Laut Ankit Guptas Antwort:

Wenn Sie sowohl Plyr als auch Dplyr verwenden, können Sie die Funktion einer bestimmten Bibliothek verwenden, indem Sie Folgendes angeben: Bibliotheksname :: Funktionsname (Parameter):

plyr::count(dataset$nationality)
1
Dzej Bi