在 R 中使用比例和百分比扩展列联表
R 编程语言中的 data.table 可用于存储包含值的不同单元格,每个单元格都属于一组相似的组或互斥组。可以使用基本方法以及 R 中的外部包来计算与其组相关的变量计数。
在 R 中创建列联表或频率表
R 中的 table() 方法用于计算出现在数据框指定列中的变量的频率计数。结果以两行表格结构的形式返回,其中第一行表示该列的值,其次表示其对应的频率。 table()函数也有助于创建带有条件和交叉表的频率表。频率表在 R 中也称为列联表。 table() 方法应用于 data.table 对象,并返回指定列的唯一值组合及其各自的频率计数。
句法:
table (x),
其中 x 是 data.table 对象
如果 x 是数据框,则可以使用以下方法构建频率表。
句法:
table (data_frame$col-name)
例子:
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() 方法来计算。它被称为比例,因为它返回每个组件在组件总数中的比例。
句法:
prop.table(frq-table)
frq-table / total observations
计算比例表的正确语法如下:
prop.table (table(df$col-name))
例子:
电阻
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() 方法将结果四舍五入到任意位数。
句法:
round (num , digits)
通过将每个单元格值乘以 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