以下数据框6行,10列,想批量求每行的20%、40%、60%、80%百分位数,再对每行数据重新赋值:<20%分位数的数据赋值为1,>=20% & <40%分位数的数据赋值为2,>=40% & <60%分位数的数据赋值为3,>=60% & <80%分位数的数据赋值为4,>=80%分位数的数据赋值为5,保留原来的行名与列名。请大神赐教,多谢!
dat.exp10
TCGA.64.1678.01 TCGA.78.7540.01 TCGA.67.6217.01 TCGA.86.8672.01 TCGA.75.7027.01
hsa-let-7a-1 12.001275 14.19005 13.337726 12.734916 12.725947
hsa-let-7a-2 11.954795 14.18530 13.320367 12.737869 12.720863
hsa-let-7a-3 11.948878 14.19789 13.334454 12.745776 12.726436
hsa-let-7b 13.983441 15.35749 13.674048 13.385433 13.750861
hsa-let-7c 10.638759 10.10007 11.030242 9.691117 8.646320
hsa-let-7d 9.437125 9.33674 9.705212 8.171743 9.243464
TCGA.55.5899.01 TCGA.35.5375.01 TCGA.38.7271.01 TCGA.44.7672.01 TCGA.44.3918.01
hsa-let-7a-1 12.855634 13.804513 14.581824 13.504605 11.060817
hsa-let-7a-2 12.851599 13.791944 14.581775 13.498497 11.051985
hsa-let-7a-3 12.870281 13.798391 14.578845 13.498305 11.078619
hsa-let-7b 12.781606 13.730736 14.549438 13.341988 12.717922
hsa-let-7c 9.881730 11.746155 12.046422 9.587829 9.517154
hsa-let-7d 8.418978 9.855121 8.876497 8.544340 8.497549
>
我已尝试用以下代码批量求得每行的20%、40%、60%、80%百分位数(原数据框名字为dat.exp10),
quantile5 <- function(x) quantile(x, probs=c(.2,.4,.6,.8))
dat.exp11 <- apply(dat.exp10, 1, quantile5)
dat.exp11
hsa-let-7a-1 hsa-let-7a-2 hsa-let-7a-3 hsa-let-7b hsa-let-7c hsa-let-7d
20% 12.58101 12.56765 12.57092 13.22991 9.573694 8.481835
40% 12.80735 12.80611 12.82048 13.55860 9.805485 8.743634
60% 13.40448 13.39162 13.39999 13.73879 10.315546 9.280775
80% 13.88162 13.87061 13.87829 14.09664 11.173425 9.490743
>


雷达卡





京公网安备 11010802022788号







