如何从0 | r建立列聯表
在处理0-1数据(binarydata)中,我们经常需要将其转换为列联表(crosstabulation或称contingencytable)。本次主角是table和xtabs函数。生成测试数据为了举例说明,我们首先生成0-1数据。set.seed(1)是为了设置种子,每次得到完全一样的“随机”数据。后面采用设置dim函数的方法建立matrix,可以避免使用matrix函数带来的拷贝一次mydata的额外操作。>mydata<-{set.seed(1);#setaconstantseedsothat>#wecangetreproducibleresults>sample.int(2,size=200,replace=T)-1L}#generatebinaryints>dim(mydata)<-c(100,2)#conver...
在处理0-1数据(binary data)中,我们经常需要将其转换为列联表(cross tabulation或称contingency table)。本次主角是table和xtabs函数。
生成测试数据为了举例说明,我们首先生成0-1数据。set.seed(1)是为了设置种子,每次得到完全一样的“随机”数据。后面采用设置dim函数的方法建立matrix,可以避免使用matrix函数带来的拷贝一次mydata的额外操作。
> mydata <- {set.seed(1); # set a constant seed so that > # we can get reproducible results > sample.int(2, size = 200, replace = T) - 1L} # generate binary ints > dim(mydata) <- c(100,2) # convert a vector to a matrix执行head函数,得到结果的是这样的。
> head(mydata) [,1] [,2] [1,] 0 1 [2,] 0 0 [3,] 1 0 [4,] 1 1 [5,] 0 1 [6,] 1 0 matrix类型分别对mydata使用table函数和xtabs函数,试图建立连列表,结果如下。
> table(mydata) mydata 0 1 98 102 > xtabs(~ V1 + V2, data = mydata) V2 V1 0 1 0 23 29 1 23 25可见,使用table不能够对matrix类型建立连列表,而只是简单的对整个matrix中的0和1进行计数;table能够对data.frame类型建立连列表。
data.frame类型首先利用前面的matrix类型的mydata建立data.frame类型的mydata.d...