数据集名称:样本。
Col1:ID
Col2:SEX(2级“m”,“f”的因子)
Col3:SIU(2级“Y”,“N”的因子)
我想通过SIU获得SEX的比率。 我可以用这段代码得到结果:
prop.table(table(sample %>% filter(SIU=="N") %>% select(SEX) ))
prop.table(table(sample %>% filter(SIU=="Y") %>% select(SEX) ))
但它由2个句子组成,因此需要执行2次。
有更好,更简单的方法来做同样的事情吗?
编辑:
上述代码的结果
> m f
> 0.4529346622 0.5470653378
> m f
> 0.3604651163 0.6395348837
这是我想要的,但我认为我的代码并不是最好的。
答案 0 :(得分:0)
df <- data.frame(ID=c(1,3,4,5,3,4), SEX = c('m','f','m','f','f','f'), SIU= c('y','y','n','n','n','n'))
aggregate(df$SEX, by=list(df$SIU), function(x) table(x)/length(x))
# Group.1 x.f x.m
# 1 n 0.75 0.25
# 2 y 0.50 0.50