user2543622
user2543622

Reputation: 6756

R getting count of unique values in a table

I have a data as below. I want to get a list of distinct values and their count for the entire matrix. What is an efficient way to do that?

I thought about putting one column below another (concatenating columns) and creating a single column of 9 elements and then running table command. But I feel that there must be a better way to do this..what are my options?

sm <- matrix(c(51,43,22,"a",51,21,".",22,9),ncol=3,byrow=TRUE)

expected output

distinct value: count
51:2
43:1
22:2
a:1
21:1
.:1
9:1

Upvotes: 0

Views: 113

Answers (1)

MrFlick
MrFlick

Reputation: 206167

The table() command works just fine across a matrix

t<-table(sm)
t
# sm
#  . 21 22 43 51  9  a 
#  1  1  2  1  2  1  1

if you want to reshape the results, you can do

cat(paste0(names(t), ":", t, collapse="\n"), "\n")

#  .:1
#  21:1
#  22:2
#  43:1
#  51:2
#  9:1
#  a:1

Upvotes: 1

Related Questions