R语言 用比例和百分比扩展权重表
R编程语言中的data.table可以用来存储不同的单元格,这些单元格中的值都属于一组相似的组或互斥的组。变量对其组的计数可以用R语言中的基本方法和外部包来计算。
在R中创建或然率或频率表
R中的table()方法被用来计算出现在数据框架指定列中的变量的频率计数。结果以两行表格结构的形式返回,其中第一行表示该列的值,接下来表示其相应的频率。table()函数也有助于创建带有条件和交叉分析的频率表。table()方法适用于data.table对象,并返回指定列值的唯一组合以及它们各自的频率计数。
语法
table (x),
其中x是data.table对象
如果x是一个数据框架,可以使用以下方法构建频率表。
语法
table (data_frame$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)
print ("Frequency")
print (freq)
输出
[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/总观测值
算比例表的正确语法如下。
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 或 vector。
例子
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_tablecol1,data_tablecol2)
# 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