Ich versuche, eine R-Funktion zu erstellen, um eine Häufigkeitstabelle zu erstellen, damit ich Formatierung usw. standardisieren kann, ohne es wiederholt eingeben. Das einzige Problem ist, dass ich es nicht bekommen kann, um eine Gruppierungsvariable richtig auszuwerten.Funktion nicht Variablen in einer erwarteten Weise
Hier einige Code ein Mini-Datensatz zu erhalten, das Problem zu reproduzieren:
library(tidyverse)
id <- sample(1:500, 5)
factors <- sample(1:3, 5, replace = TRUE)
data <- data.frame(id, factors)
freqTable <- function(x, field){
Table <- x %>%
group_by(field) %>%
summarise(N = n(), Percent = n()/NROW(x)*100) %>%
mutate(C.Percent = cumsum(Percent))
return(Table)
}
freqTable(data, "factors")
was zur Folge hat:
Fehler in resolve_vars (new_groups, tbl_vars (.data)): unbekannt Variable Gruppe von: Feld Called aus: resolve_vars (new_groups, tbl_vars (.data))
ich habe auch versucht:
freqTable <- function(x, field){
Table <- x %>%
group_by(paste(field)) %>%
summarise(N = n(), Percent = n()/NROW(x)*100) %>%
mutate(C.Percent = cumsum(Percent))
return(Table)
}
die ein wenig besser (in, dass es nicht Fehler) funktioniert, aber noch nicht Gruppe tatsächlich die korrekten Faktoren, die Ausgabe folgendermaßen aus:
# A tibble: 1 × 4
`paste(field)` N Percent C.Percent
<chr> <int> <dbl> <dbl>
1 factors 5 100 100
Wo es sagt nur mir die Anzahl der Fälle in dieser Spalte. Weiß jemand wo ich hier falsch liege?
überprüfen Sie die "Programmierung mit dplyr Vignette" out: https://cran.r-project.org/web/packages/dplyr /vignettes/programming.html – sinQueso