0
그룹을 포함하는 행 (1) 및 그룹 (0)을 포함하는 행의 백분율을 계산하는 가장 간단한 방법은 무엇입니까?집계하여 그룹당 0이 아닌 행의 백분율을 계산하십시오.
다음dat <- structure(list(rs = c(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0), group = c(3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1)), .Names = c("rs", "group"), row.names = c(NA,
-62L), class = "data.frame")
내가 지금까지있어 무엇 : 여기
는 몇 가지 작은 예제 데이터입니다 (웃음하지 않습니다!) : 잘 작동 어떤require(plyr)
tab <- as.data.frame(table(dat))
dc <- dcast(tab, group ~ rs)
dc <- dc[,-1]
dc[] <- lapply(dc, as.numeric)
data.frame(prop.table(as.matrix(dc), 1))
:
X0 X1
1 1.0000000 0.00000000
2 0.8787879 0.12121212
3 0.9285714 0.07142857
하지만 타이핑이 덜 필요한 방법이 있다고 확신합니다.
plyr
및 data.table
으로 해결하십시오.
긍정, 즉 함께 (좋은 짧은 방법 덕분 – Ben
'를 t (prop.table이다 (DAT 테이블 (RS, 기)), 2)) '를 변형으로 사용합니다. – thelatemail