R语言 权变表
或然率表 对于将大量的观察数据浓缩成较小的、便于维护的表格来说非常有用。一个或然率表显示了一个变量在行中的分布,另一个变量在其列中的分布。权变表不仅对浓缩数据有用,而且还显示了变量之间的关系。它们是总结分类变量的一种方式。处理单一表格的或然率表被称为 复杂或平面或然率表 。
制作或然率表
或然率表是一种重新绘制数据并将其组合成表格的方法。而且,它显示了原始数据的布局,使读者能够获得原始数据的整体总结。在R中, table() 函数被用来创建一个或然率表。 table() 函数是R语言中最通用的函数之一,它可以接受任何数据结构作为参数,并将其变成一个表格。原始数据越复杂,生成的或然率表就越复杂。
从矢量创建或然率表
在R语言中,向量是一个给定长度的基本数据类型的有序集合。这里唯一的关键是一个向量的所有元素必须是相同的数据类型,例如同质数据结构。矢量是一维数据结构。它是最简单的数据对象,你可以从中创建一个或然率表。
例子
# R program to illustrate
# Contingency Table
# Creating a vector
vec = c(2, 4, 3, 1, 6, 3, 2, 1, 4, 5)
# Creating contingency table from vec using table()
conTable = table(vec)
print(conTable)
输出
vec
1 2 3 4 5 6
2 2 2 2 1 1
在给定的程序中,首先当我们对向量执行table()命令时,它对向量值进行排序,同时打印出向量中每个元素的频率。
从数据中创建或然率表
现在我们将看到一个简单的例子,它提供了一个数据框架,在一列中包含字符值,在其中一列中也包含一个因子。这一列因素包含字符变量。为了从数据中创建我们的或然率表,我们将利用table()的作用。在下面的例子中,table()函数返回一个或然率表。基本上,它返回一个分类变量的表格结果。
例子
# R program to illustrate
# Contingency Table
# Creating a data frame
df = data.frame(
"Name" = c("Amiya", "Rosy", "Asish"),
"Gender" = c("Male", "Female", "Male")
)
# Creating contingency table from data using table()
conTable = table(df)
print(conTable)
输出
Gender
Name Female Male
Amiya 0 1
Asish 0 1
Rosy 1 0
创建自定义或然率表
R中的或然率表可以只使用一部分数据来创建,这与收集所有行和列的数据是不同的。我们可以通过以下方式在R中创建一个自定义或然率表。
- 在或然率表中使用数据框的列
- 在权变表中使用数据框架的行
- 通过在R中旋转数据框架
- 从R中的矩阵对象创建应急表
-
在 应急表中使用数据框的列: 在table()命令的帮助下,我们可以指定创建应急表的列。为了做到这一点,你只需要在table()命令的参数中传递矢量对象的名称。
例子
# R program to illustrate
# Contingency Table
# Creating a data frame
df = data.frame(
"Name" = c("Amiya", "Rosy", "Asish"),
"Gender" = c("Male", "Female", "Male")
)
# Creating contingency table by selecting a column
conTable = table(df$Name)
print(conTable)
输出
Amiya Asish Rosy
1 1 1
从输出结果来看,你可以注意到table()命令按照字母顺序对名字和它们的出现频率进行排序。
- 在或然率表中使用数据框的行: 我们不能像在 “使用列 “部分那样直接使用数据框的行来创建或然率表。在矩阵的帮助下,我们可以通过查看数据框的行来创建一个或然率表。
例子
# R program to illustrate
# Contingency Table
# Creating a data frame
df = data.frame(
"Name" = c("Amiya", "Rosy", "Asish"),
"Gender" = c("Male", "Female", "Male")
)
# Creating contingency table by selecting rows
conTable = table(as.matrix(df[2:3, ]))
print(conTable)
输出
Asish Female Male Rosy
1 1 1 1
- 通过在R中旋转数据框: 我们也可以通过在R中旋转数据框来创建一个或然率表。我们可以对数据进行旋转,即使用 t() 命令对数据进行转置。
例子
# R program to illustrate
# Contingency Table
# Creating a data frame
df = data.frame(
"Name" = c("Amiya", "Rosy", "Asish"),
"Gender" = c("Male", "Female", "Male")
)
# Rotating the data frame
newDf = t(df)
# Creating contingency table by rotating data frame
conTable = table(newDf)
print(conTable)
输出
newDf
Amiya Asish Female Male Rosy
1 1 1 2 1
- 在R中从矩阵对象中创建应急表 矩阵是一个行和列的矩形数字排列。在一个矩阵中,我们知道行是水平方向的,列是垂直方向的。矩阵是二维的、同质的数据结构。我们可以通过使用这个矩阵对象创建一个或然率表。
例子
# R program to illustrate
# Contingency Table
# Creating a matrix
A = matrix(
c(1, 2, 4, 1, 5, 6, 2, 4, 7),
nrow = 3,
ncol = 3
)
# Creating contingency table using matrix object
conTable = table(A)
print(conTable)
输出
A
1 2 4 5 6 7
2 2 2 1 1 1
将对象转换为表
如上所述,表是一种特殊类型的数据对象,它与矩阵相似,但也拥有一些不同之处。
- 将矩阵对象转换为表格: 我们可以通过使用 as.table() 命令直接将矩阵对象转换为表格。只要将矩阵对象作为参数传递给 as.table() 命令即可。
例子
# R program to illustrate
# Contingency Table
# Creating a matrix
A = matrix(
c(1, 2, 4, 1, 5, 6, 2, 4, 7),
nrow = 3,
ncol = 3
)
# Converting Matrix Objects into tables
newTable = as.table(A)
print(newTable)
输出
A B C
A 1 1 2
B 2 5 4
C 4 6 7
- 将数据框对象转换为表格: 我们不能通过使用 as.table() 命令直接将数据框对象转换为表格。在数据框架的情况下,可以将该对象转换为矩阵,然后使用 as.table() 命令将其转换为表格。
例
# R program to illustrate
# Contingency Table
# Creating a data frame
df = data.frame(
"Name" = c("Amiya", "Rosy", "Asish"),
"Gender" = c("Male", "Female", "Male")
)
# Converting data frame object to matrix object
modifiedDf = as.matrix(df)
# Converting Matrix Objects into tables
newTable = as.table(modifiedDf)
print(newTable)
输出
Name Gender
A Amiya Male
B Rosy Female
C Asish Male
极客教程