如何在 r 中创建相对频率表
相对频率表告诉您数据集中某些值相对于数据集中值总数的出现频率。
您可以使用以下基本语法在 R 中创建频率表:
table(data)/length(data)
table()函数计算每个单独数据值的频率, length()函数计算数据集中值的总数。
因此,通过将每个单独的频率除以数据集的长度,我们可以获得数据集中每个值的相对频率。
以下示例展示了如何在实践中使用此语法。
示例 1:向量的相对频率表
以下代码显示了如何在 R 中为单个向量创建相对频率表:
#define data data <- c('A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C') #create relative frequency table table(data)/length(data) ABC 0.2 0.3 0.5
以下是如何解释该表:
- 数据集中所有值的20%是字母 A
- 数据集中所有值的30%是字母 B
- 数据集中所有值的50%是字母 C
示例 2:数据框列的相对频率表
以下代码显示了如何在 R 中为数据框的列创建相对频率表:
#define data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'C'), wins=c(2, 9, 11, 12, 15, 17, 18, 19), dots=c(1, 2, 2, 2, 3, 3, 3, 3)) #view first few rows of data frame head(df) team wins points 1 to 2 1 2 to 9 2 3 to 11 2 4 to 12 2 5 to 15 3 6 B 17 3 #calculate relative frequency table for 'team' column table(df$team)/length(df$team) ABC 0.625 0.250 0.125
示例 3:数据框中所有列的相对频率表
以下代码展示了如何在 R 中为数据帧的每一列创建相对频率表:
#define data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'C'), wins=c(2, 9, 11, 12, 15, 17, 18, 19), dots=c(1, 2, 2, 2, 3, 3, 3, 3)) #calculate relative frequency table for each column sapply(df, function (x) table(x)/nrow(df)) $team x ABC 0.625 0.250 0.125 $wins x 2 9 11 12 15 17 18 19 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 $points x 1 2 3 0.125 0.375 0.500