Ben
Ben

Reputation: 21625

Get relative frequency of value in vector in r

I have a data frame called 'train' that looks like

ID ResourceID
1  237
2  237
3  1845
4  739
.  .
.  .
.  .

How do I get the relative frequency of a specific resource?

Upvotes: 1

Views: 3005

Answers (2)

A5C1D2H2I1M1N2O1R2T1
A5C1D2H2I1M1N2O1R2T1

Reputation: 193517

You should look into prop.table. Here's a simple example:

# Your sample data
mydf <- structure(list(ID = 1:4, ResourceID = c(237L, 237L, 1845L, 739L)), 
                  .Names = c("ID", "ResourceID"), class = "data.frame", 
                  row.names = c(NA, -4L))
mydf
#   ID ResourceID
# 1  1        237
# 2  2        237
# 3  3       1845
# 4  4        739
prop.table(table(mydf$ResourceID))
# 
#  237  739 1845 
# 0.50 0.25 0.25 

Upvotes: 7

David
David

Reputation: 9405

The table() function will give frequencies so table(train$ResourceID) will give the frequencies for your resources. To get relative frequencies you can then just divide by the total number of cases, like so: table(train$ResourceID)/nrow(train)

Trivial Example:

> table(train$label)

 one zero 
 510  490 
> table(train$label)/nrow(train)

 one zero 
0.51 0.49 

Upvotes: 3

Related Questions