我有一个由虚拟变量(1' s和0' s)组成的表,如下所示:
colnames<-c("gender","alpha","beta","gamma","delta","lambda")
row1<-c("male",0,1,0,1,0)
row2<-c("male",1,0,1,1,0)
row3<-c("female",1,0,1,0,0)
row4<-c("male",0,1,1,0,1)
row5<-c("female",0,1,0,1,0)
row6<-c("male",1,1,0,1,0)
df<-as.data.frame(rbind(row1,row2,row3,row4,row5,row6))
names(df)<-colnames
rownames(df) <- NULL
我使用图书馆&#39; Publish&#39;在Github上
library(Publish)
univariateTable(gender~alpha+beta+gamma+delta+lambda,data=df)
输出包含行中的1&0和0,但出于显而易见的原因我只想要1
Variable Level female (n=2) male (n=4) Total (n=6) p-value
1 alpha 0 1 (50.0) 2 (50.0) 3 (50.0)
2 1 1 (50.0) 2 (50.0) 3 (50.0) 1
3 beta 0 1 (50.0) 1 (25.0) 2 (33.3)
4 1 1 (50.0) 3 (75.0) 4 (66.7) 1
5 gamma 0 1 (50.0) 2 (50.0) 3 (50.0)
6 1 1 (50.0) 2 (50.0) 3 (50.0) 1
7 delta 0 1 (50.0) 1 (25.0) 2 (33.3)
8 1 1 (50.0) 3 (75.0) 4 (66.7) 1
9 lambda 0 2 (100.0) 3 (75.0) 5 (83.3)
10 1 0 (0.0) 1 (25.0) 1 (16.7) 1
显然,我可以继续手动删除所有奇数行,但我想知道是否有自动方式来做到这一点。
而且,理想情况下,摆脱&#34;级别&#34;会很好。专栏。
答案 0 :(得分:1)
这应该有效:
cbind(subset(df,level=0,Variable),subset(df,level=1,3:6))
我将变量列并排放置,作为df的子集,其中level = 0,以及df的第3列到第6列的子集,此时filered在level = 1上。