## R - count occurrences in long vectors

r count frequency

r count observations by group

count the number of times a value appears in a column r

conditional count in r

count observations in r

count number of observations in r

count function in r package

I have a dataframe that is 6249 rows long, filled with character-type data and will likely get a lot bigger.

I want to count the number of occurrences of each string. Normally I'd use `table(df)`

or

count(df)

but they both seem to stop after 250 rows.

Is there a different function or a way to force count() or table() to continue for 6000+ results?

A simple way to do this with any sized data frame is to add a `count`

field to the data frame and then summarize the `string`

field by `count`

with the `doBy`

package - like so:

require(doBy) df$count <- 1 result <- summaryBy(count ~ string, data = df, FUN = sum, keep.names = TRUE)

**R Is Not So Hard! A Tutorial, Part 15: Counting Elements in a Data Set,** Let's count the 3s in the vector b. count3 <- length(which(b == 3)) count3 [1] rowCounts: Counts the number of occurrences of a specific value In matrixStats: Functions that Apply to Rows and Columns of Matrices (and to Vectors) Description. The row- and column-wise functions take either a matrix or a vector as input. If a vector, then argument dim. must be specified and fulfill prod(dim.) == length(x).

As @Gregor noticed it seems like you interpreted the `table`

output wrongly whereas it is actually doing the right counting. Anyway here goes a solution using `Reduce`

, you should replace `df`

where indicated by your dataframe and `string`

column name by the column name of your actual dataframe in which you are counting.

# let's create some dataframe with three strings randomly distributed of length 1000 df <- data.frame(string = unlist(lapply(round(runif(1000, 1, 3)), function(i) c('hi', 'ok', 'my cat')[i]))) my.count <- function(word, df) { # now let's count how many 'b' we found Reduce(function(acc, r) { # replace 'string' by the name of the column of your dataframe over which you want to count if(r$string == word) acc + 1 else acc }, apply(df, 1, as.list), init = 0) } # count how many 'my cat' strings are in the df dataframe at column 'string', replace with yours my.count('my cat', df) # now let's try to find the frequency of all of them uniq <- unique(df$string) freq <- unlist(lapply(uniq, my.count, df)) names(freq) <- uniq freq # output # ok my cat hi # 490 261 249 # we can check indeed that the sum is 1000 sum(freq) # [1] 1000

**The advantages of using count() to get N-way ,** How do you find the length of a vector in R? e. then count the number of activities after the last work activity. The result for the three example tours then would be: 1.number of activities before first primary: 1 (home) number of activities between first and last primary: 0 number of activities after last primary: 2 (leisure & home) number of primary activities: 1 (work)

Well, this won't be popular, but in the end I achieved the desired result with a for loop and and taking the number of rows in a subset.

y <- as.numeric(vector()) x <- as.numeric(vector()) for (i in test$token){ x <- as.numeric(nrow(df[(df$token == i),])) y <- c(y, x) }

Y then becomes a vector with the number of occurences of each string.

**colCounts: Counts the number of occurrences of a specific value in ,** in the “plyr” package to get the same frequencies in a list format. > count (bevs, c ("name", "drink")) name drink freq 1 Bill cocoa 2 2 Bill coffee 2 3 Llib tea 2 4 Llib water 2 It’s all pretty easy. Just tell count which data frame you’re using, then which columns you want to tally by, and it does the counting very quickly and efficiently.

**count: Count the number of occurences. in plyr: Tools for Splitting ,** The row- and column-wise functions take either a matrix or a vector as input. If a vector, then argument dim. must be specified and fulfill variables to count unique values of wt_var optional variable to weight by - if this is non-NULL, count will sum up the value of this variable for each combination of id variables.

**count function,** View source: R/count.r Compared to table + as.data.frame , count also preserves the type of the identifier variables, instead of converting them to To figure out what data can be factored when working in R, let’s take a look at the dataset mtcars. This built-in dataset describes fuel consumption and ten different design points from 32 cars from the 1970s. It contains, in total, 11 variables, but all of them are numeric. Although you can work with the …

**Counting and aggregating in R,** Count the number of occurences. Equivalent to as.data.frame(table(x)) , but does not include combinations with zero counts. Keywords: manip Previous message: Jean Eid: "[R] System memory" In reply to Spencer Graves: "Re: [R] counting the occurrences of vectors" Next in thread: Gabor Grothendieck: "Re: [R] counting the occurrences of vectors" Reply: Gabor Grothendieck: "Re: [R] counting the occurrences of vectors" Reply: Gabor Grothendieck: "Re: [R] counting the occurrences of vectors"

##### Comments

- are you just trying to count the rows in the data frame? if so use
`nrow(df)`

- No, I'm trying to count the number of tme each result appears. For example, if I had a vector x <- c("Jim", "and", "me", "bought", " some", "Ben", "and", "Jerrys") I want to get their frequencies. e.g. c(1,2,1,1,1,1,2,1)
`table`

doesn't stop counting - the default print behavior just truncates it off. Try`tt = table(runif(6000))`

,`length(tt)`

,`head(tt)`

,`tail(tt)`

...- Do you want a count column in
`df`

? If so, try`aggregate(. ~ string, df, function(x) length(unique(x)))`

. Otherwise, as @Gregor says,`table`

should work.