One more solution, which works for both numeric & character/factor data:

Mode <- function(x) { ux <- unique(x) ux[which.max(tabulate(match(x, ux)))] }

On my dinky little machine, that can generate & find the mode of a 10M-integer vector in about half a second.

If your data set might have multiple modes, the above solution takes the same approach as `which.max`

, and returns the *first-appearing* value of the set of modes. To return *all* modes, use this variant (from @digEmAll in the comments):

Modes <- function(x) { ux <- unique(x) tab <- tabulate(match(x, ux)) ux[tab == max(tab)] }

### Related Posts:

- Emulate ggplot2 default color palette
- Error in file(file, “rt”) : cannot open the connection [duplicate]
- Could not find function “%<>%” with dplyr loaded
- How to coerce a list object to type ‘double’
- R Error in x$ed : $ operator is invalid for atomic vectors
- Plotting with ggplot2: “Error: Discrete value supplied to continuous scale” on categorical y-axis
- ggplot2 error : Discrete value supplied to continuous scale
- ggplot2 line chart gives “geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?”
- ggplot2 line chart gives “geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?”
- How to open CSV file in R when R says “no such file or directory”?
- Error: could not find function “%>%”
- R programming: How do I get Euler’s number?
- What does na.rm=TRUE actually means?
- Counting the number of elements with the values of x in a vector
- ‘x’ and ‘y’ lengths differ ERROR when plotting
- What are the “standard unambiguous date” formats for string-to-date conversion in R?
- Error in file(file, “rt”) : invalid ‘description’ argument in complete.cases program
- Error in Confusion Matrix : the data and reference factors must have the same number of levels
- Error in colMeans(x, na.rm = TRUE) : ‘x’ must be numeric, What should I do in this situation?
- Extracting value specific rows in R
- “Error: Mapping should be created with `aes()` or `aes_()`.”
- Principal Components Analysis:Error in colMeans(x, na.rm = TRUE) : ‘x’ must be numeric
- plot.new has not been called yet
- Error in lm.fit(x,y,offset = offset, singular.ok,…) 0 non-NA cases with boxcox formula
- Extract year from date
- Persistent invalid graphics state error when using ggplot2
- Logistic regression – eval(family$initialize) : y values must be 0 <= y <= 1
- incorrect number of dimensions and incorrect number of subscripts in array
- Opposite of %in%: exclude rows with values specified in a vector
- What does %*% mean in R [duplicate]
- Why am I getting “algorithm did not converge” and “fitted prob numerically 0 or 1” warnings with glm?
- Add text to ggplot
- Rotating and spacing axis labels in ggplot2
- What does c do in R?
- Opposite of %in%: exclude rows with values specified in a vector
- Using Caret Package but Getting Error in library(e1071)
- Reading PSV (pipe-separated) file or string
- plot.new has not been called yet
- Subscript out of bounds – general definition and solution?
- Error: unexpected symbol/input/string constant/numeric constant/SPECIAL in my code
- Remove NA values from a vector
- character string is not in a standard unambiguous format
- Remove rows with all or some NAs (missing values) in data.frame
- duplicate ‘row.names’ are not allowed error
- Function to clear the console in R and RStudio
- Adding a regression line on a ggplot
- Invalid factor level, NA generated warning
- Error: unexpected ‘}’ in “}” in R [duplicate]
- Error in table “all arguments must have the same length”
- How to not run an example using roxygen2?
- Add empty columns to a dataframe with specified names from a vector
- Error with apply function
- `fread` with headers with special characters (latin1) and unusual nested quotes
- Generate a set of random unique integers from an interval
- Increase number of axis ticks
- How to assign colors to categorical variables in ggplot2 that have stable mapping?
- “installation of package ‘FILE_PATH’ had non-zero exit status” in R
- Is there a dictionary functionality in R
- reshape2 melt warning message
- Replace all particular values in a data frame
- Plot a legend outside of the plotting area in base graphics?
- Still getting error in dev.off() : cannot shut down device 1 (the null device)
- ggplot2 manually specifying colour with geom_line
- lme4 error: boundary (singular) fit: see ?isSingular
- dcast warning: ‘Aggregation function missing: defaulting to length’
- How to update a package in R?
- How to get summary statistics by group
- Run R script from command line
- Non-conformable arrays error in code
- object of type ‘builtin’ is not subsettable
- What causes an R script to get Killed?
- What’s the difference between facet_wrap() and facet_grid() in ggplot2?
- dplyr mutate with conditional values
- `Error in file(con, “r”) : cannot open the connection` from running BRugsFit()
- How to solve prcomp.default(): cannot rescale a constant/zero column to unit variance
- incorrect number of subscripts on matrix in R
- How Do You Compare Two Strings in R?
- Creating box plot on exercise
- What is the meaning of the dollar sign “$” in R function()?
- How to split data into training/testing sets using sample function
- How to sort a data frame by alphabetic order of a character variable in R?
- Error in na.fail.default(as.ts(x)) : missing values in object in time series forecasting
- Creating a Plot Window of a Particular Size
- Geometric Mean: is there a built-in?
- How do you specifically order ggplot2 x axis instead of alphabetical order?
- Error in na.fail.default: missing values in object – but no missing values
- How to initialize a vector with fixed length in R
- Efficiently sum across multiple columns in R
- How do I clean up R memory without restarting my PC?
- Side-by-side plots with ggplot2
- lib unspecified & Error in loadNamespace
- The difference between bracket [ ] and double bracket [[ ]] for accessing the elements of a list or dataframe
- What do these R glm error messages mean: “Error: no valid set of coefficients has been found: please supply starting values”
- Error Error in storage.mode(x) <- "double" : 'list' object cannot be coerced to type 'double'
- why nrow(dataframe) and length(dataframe) in r give different results?
- how to add dashed horizontal line with label in ggplot
- cbind warnings : row names were found from a short variable and have been discarded
- What is the meaning of the dollar sign “$” in R function()?
- Filter rows which contain a certain string
- How to calculate combination and permutation in R?