📜  在 R 中使用比例和百分比扩展列联表

📅  最后修改于: 2022-05-13 01:55:11.777000             🧑  作者: Mango

在 R 中使用比例和百分比扩展列联表

R 编程语言中的 data.table 可用于存储包含值的不同单元格,每个单元格都属于一组相似的组或互斥组。可以使用基本方法以及 R 中的外部包来计算与其组相关的变量计数。

在 R 中创建列联表或频率表

R 中的 table() 方法用于计算出现在数据框指定列中的变量的频率计数。结果以两行表格结构的形式返回,其中第一行表示该列的值,其次表示其对应的频率。 table()函数也有助于创建带有条件和交叉表的频率表。频率表在 R 中也称为列联表。 table() 方法应用于 data.table 对象,并返回指定列的唯一值组合及其各自的频率计数。

句法:

其中 x 是 data.table 对象



如果 x 是数据框,则可以使用以下方法构建频率表。

句法:

例子:

R
library("data.table")
  
set.seed(1)  
  
# creating a data frame
data_table <- data.table(col1 =  sample(letters[1:3], 8, replace = TRUE) ,
                         col2 = sample(1:6, 8, replace = TRUE)
                        )
  
print ("Original DataFrame")
print (data_table)
  
# calculating frequency
freq <- table(data_table$col1)
print ("Frequency")
print (freq)


R
library("data.table")
  
set.seed(1)  
  
# creating a data frame
data_table <- data.table(col1 =  sample(letters[1:3], 8, replace = TRUE) ,
                         col2 = sample(1:6, 8, replace = TRUE)
                        )
  
print ("Original DataFrame")
print (data_table)
  
# calculating frequency
freq <- table(data_table$col1)
  
# creating proportions 
prop <- prop.table(freq)
print ("Proportions of column1")
print (prop)


R
library("data.table")
set.seed(1)  
  
# creating a data frame
data_table <- data.table(col1 =  sample(letters[1:3], 8, replace = TRUE) ,
                         col2 = sample(1:6, 8, replace = TRUE)
                        )
  
print ("Original DataFrame")
print (data_table)
  
# calculating frequency
freq <- table(data_table$col1)
  
# creating proportions 
prop <- prop.table(freq)
  
print ("Percentage of column1")
perc <- round((prop * 100),2)
print (perc)


R
library("data.table")
set.seed(1)  
  
# creating a data frame
data_table <- data.table(col1 =  sample(letters[1:3], 8, replace = TRUE) ,
                         col2 =  sample(1:2, 8, replace = TRUE)
                        )
  
print ("Original DataFrame")
print (data_table)
  
# calculating frequency
freq <- table(data_table$col1,data_table$col2)
  
# creating proportions 
prop <- prop.table(freq)
print ("Proportions of column1")
print (prop)
  
print ("Percentage of column1")
perc <- round((prop * 100),2)
print (perc)


输出

[1] "Original DataFrame" 
col1 col2 
1:    a    2 
2:    c    3 
3:    a    3 
4:    b    1 
5:    a    5 
6:    c    5 
7:    c    2 
8:    b    6 
[1] "Frequency"
a b c  
3 2 3 

创建频率表的比例

相对频率也称为概率分布,是对应值的频率除以元素总数。这可以通过对从先前方法获得的频率表应用的 prop.table() 方法来计算。它被称为比例,因为它返回每个组件在组件总数中的比例。

句法:



计算比例表的正确语法如下:

例子:

电阻

library("data.table")
  
set.seed(1)  
  
# creating a data frame
data_table <- data.table(col1 =  sample(letters[1:3], 8, replace = TRUE) ,
                         col2 = sample(1:6, 8, replace = TRUE)
                        )
  
print ("Original DataFrame")
print (data_table)
  
# calculating frequency
freq <- table(data_table$col1)
  
# creating proportions 
prop <- prop.table(freq)
print ("Proportions of column1")
print (prop)

输出

[1] "Original DataFrame"  
col1 col2
1:    a    2
2:    c    3
3:    a    3
4:    b    1
5:    a    5
6:    c    5
7:    c    2
8:    b    6
[1] "Proportions of column1"
a     b     c  
0.375 0.250 0.375

创建频率表的百分比

可以通过将概率表的每个相应单元格元素乘以 100 来计算百分比。为了更好的可读性,可以使用 round() 方法将结果四舍五入到任意位数。

句法:

通过将每个单元格值乘以 100,可以对比例表进行四舍五入以计算百分比。结果是 data.table 或与输入格式相同的向量。

例子:

电阻

library("data.table")
set.seed(1)  
  
# creating a data frame
data_table <- data.table(col1 =  sample(letters[1:3], 8, replace = TRUE) ,
                         col2 = sample(1:6, 8, replace = TRUE)
                        )
  
print ("Original DataFrame")
print (data_table)
  
# calculating frequency
freq <- table(data_table$col1)
  
# creating proportions 
prop <- prop.table(freq)
  
print ("Percentage of column1")
perc <- round((prop * 100),2)
print (perc)

输出

[1] "Original DataFrame"  
col1 col2 
1:    a    2 
2:    c    3 
3:    a    3 
4:    b    1 
5:    a    5 
6:    c    5 
7:    c    2 
8:    b    6 
[1] "Percentage of column1"  
a    b    c  
37.5 25.0 37.5 

使用多列计算频率、比例和百分比

table() 方法可用于指定多个列参数,其中唯一的组合与其各自的计数一起计算

例子:

电阻

library("data.table")
set.seed(1)  
  
# creating a data frame
data_table <- data.table(col1 =  sample(letters[1:3], 8, replace = TRUE) ,
                         col2 =  sample(1:2, 8, replace = TRUE)
                        )
  
print ("Original DataFrame")
print (data_table)
  
# calculating frequency
freq <- table(data_table$col1,data_table$col2)
  
# creating proportions 
prop <- prop.table(freq)
print ("Proportions of column1")
print (prop)
  
print ("Percentage of column1")
perc <- round((prop * 100),2)
print (perc)

输出

[1] "Original DataFrame" 
   col1 col2 
1:    a    2 
2:    c    1 
3:    a    1 
4:    b    1 
5:    a    1 
6:    c    1 
7:    c    2 
8:    b    2 
[1] "Proportions of column1" 
      1     2   
a 0.250 0.125   
b 0.125 0.125   
c 0.250 0.125
[1] "Percentage of column1" 
     1    2   
a 25.0 12.5   
b 12.5 12.5   
c 25.0 12.5