Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建一个表来显示r中所有虚拟变量的频率_R_Frequency_Dummy Variable - Fatal编程技术网

如何创建一个表来显示r中所有虚拟变量的频率

如何创建一个表来显示r中所有虚拟变量的频率,r,frequency,dummy-variable,R,Frequency,Dummy Variable,我是R的新手。 我想创建一个所有虚拟变量的频率表,我有这样一个数据 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

我是R的新手。 我想创建一个所有虚拟变量的频率表,我有这样一个数据

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
我想看看每个变量的总频率是怎样的

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(),但一次只能使用一个变量。 我有很多时间严重的虚拟变量,我想看看它们的趋势

非常感谢你的帮助 特伦斯

说明:

sapply
将函数应用于数据帧的每一列并返回矩阵。因此
sappy(dat[,-1],table)
返回一个矩阵,每个列的
table
输出(除了我们排除的第一列)

矩阵需要进行转置,以便原始数据帧中的列名是行,伪值是列,因此我们使用
t
(转置)函数来实现这一点

我们需要的是数据帧,而不是矩阵,因此我们将整个内容包装为.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

非常感谢你的帮助。但是它显示了“行和中的错误(结果):'x'必须是数字”,我仍然在寻找错误的位置。错误告诉您至少有一列不是数字
str(result)
将显示每列的类。我不知道为什么
表会出现这种情况,但是如果没有关于您的数据和代码的更多信息,很难说更多。非常感谢。我稍微修改一下你的代码,我得到了我想要的,虽然没有求和。“result1=as.data.frame(sappy(dat[,-1],table))result1_1=(t(result1)([-3,[-4,[-5,[-6,[-7,[-8,]))result1_1”非常感谢^^