如何创建 table 显示 r 中所有虚拟变量的频率
How to create a table shows frequency of all dummy variables in r
我是R的菜鸟。
我想创建所有虚拟变量的频率 table,并且我有这样的数据
ID Dummy_2008 Dummy_2009 Dummy_2010 Dummy_2011 Dummy_2012 Dummy_2013
1 1 1 0 0 1 1
2 0 0 1 1 0 1
3 0 0 1 0 0 1
4 0 1 1 0 0 1
5 0 0 0 0 1 0
6 0 0 0 1 0 0
我想看看每个变量的总频率如何
0 1 sum
Dummy_2008 5 1 6
Dummy_2009 4 2 6
Dummy_2010 3 3 6
Dummy_2011 4 2 6
Dummy_2012 4 2 6
Dummy_2013 2 4 6
我只知道使用 table() ,但我一次只能做一个变量。
我有很多时间严重的虚拟变量,我想看看它们的趋势。
非常感谢您的帮助
特伦斯
result = as.data.frame(t(sapply(dat[,-1], table)))
result$Sum = rowSums(result)
0 1 Sum
Dummy_2008 5 1 6
Dummy_2009 4 2 6
Dummy_2010 3 3 6
Dummy_2011 4 2 6
Dummy_2012 4 2 6
Dummy_2013 2 4 6
解释:
sapply
将函数应用到数据框的每一列和 returns 矩阵。所以 sapply(dat[,-1], table)
returns 一个矩阵,每列的输出为 table
(第一列除外,我们已将其排除)。
矩阵需要转置,以便原始数据框中的列名是行,虚拟值是列,因此我们为此使用 t
(转置)函数。
我们想要一个数据框,而不是矩阵,所以我们将整个东西包装在 as.data.frame
。
接下来,我们想要另一列给出值的总数,因此我们使用 rowSums
函数。
这是另一个使用 mtabulate
和 addmargins
的选项
library(qdapTools)
addmargins(as.matrix(mtabulate(df1[-1])),2)
# 0 1 Sum
#Dummy_2008 5 1 6
#Dummy_2009 4 2 6
#Dummy_2010 3 3 6
#Dummy_2011 4 2 6
#Dummy_2012 4 2 6
#Dummy_2013 2 4 6
我是R的菜鸟。 我想创建所有虚拟变量的频率 table,并且我有这样的数据
ID Dummy_2008 Dummy_2009 Dummy_2010 Dummy_2011 Dummy_2012 Dummy_2013
1 1 1 0 0 1 1
2 0 0 1 1 0 1
3 0 0 1 0 0 1
4 0 1 1 0 0 1
5 0 0 0 0 1 0
6 0 0 0 1 0 0
我想看看每个变量的总频率如何
0 1 sum
Dummy_2008 5 1 6
Dummy_2009 4 2 6
Dummy_2010 3 3 6
Dummy_2011 4 2 6
Dummy_2012 4 2 6
Dummy_2013 2 4 6
我只知道使用 table() ,但我一次只能做一个变量。 我有很多时间严重的虚拟变量,我想看看它们的趋势。
非常感谢您的帮助 特伦斯
result = as.data.frame(t(sapply(dat[,-1], table)))
result$Sum = rowSums(result)
0 1 Sum
Dummy_2008 5 1 6
Dummy_2009 4 2 6
Dummy_2010 3 3 6
Dummy_2011 4 2 6
Dummy_2012 4 2 6
Dummy_2013 2 4 6
解释:
sapply
将函数应用到数据框的每一列和 returns 矩阵。所以 sapply(dat[,-1], table)
returns 一个矩阵,每列的输出为 table
(第一列除外,我们已将其排除)。
矩阵需要转置,以便原始数据框中的列名是行,虚拟值是列,因此我们为此使用 t
(转置)函数。
我们想要一个数据框,而不是矩阵,所以我们将整个东西包装在 as.data.frame
。
接下来,我们想要另一列给出值的总数,因此我们使用 rowSums
函数。
这是另一个使用 mtabulate
和 addmargins
library(qdapTools)
addmargins(as.matrix(mtabulate(df1[-1])),2)
# 0 1 Sum
#Dummy_2008 5 1 6
#Dummy_2009 4 2 6
#Dummy_2010 3 3 6
#Dummy_2011 4 2 6
#Dummy_2012 4 2 6
#Dummy_2013 2 4 6