2017-01-07 34 views
0

我想找到沒有學生誰得到> 500> 300〜400 <和< 400各學科的R.如何找到在R欄的間隔

我的數據集:
$ English:int 430 430 430 430 430 430 430 430 430 430 ...
$ Quantitative:int 605 575 325 575 605 120 475 475 785 460 ...
$邏輯:int 555 510 470 460 505 310 435 360 530 435 ...
$編碼:整數672 531 477 410 660 692 436 635 221 314 ...
$ Pyschometric:整數224 426 616 708 302 595 328 346 760 775 ...
Input IMAGE
中的R 需要的輸出應爲:
值.............:主機QUA登錄主機%定量%邏輯%
$> 600 & < 799:114 182 271 10 16 10 2
$> 400 & < 599:322 283 393 27 24 27 34
$> 200 & < 401:496 333 609 42 42 42 53
$> 100 & < 200:241 361 138 21 21 31 12
output Image

請提供中的R編程的命令來執行,使得

+2

您可以嘗試'lapply(df1,function(x)table(cut(x,breaks = c(100,500,600,Inf)))' – akrun

+3

請不要將數據發佈爲圖片!我建議你閱讀[reproducible](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)和[minimal](http://stackoverflow.com/幫助/ mcve)的例子。然後請回到這裏並編輯你的問題,粘貼類似'dput(head(mydataset,n = 10)')的輸出(所以我們可以爲你的數據),並粘貼R data.frame應該看起來像一次我們操縱了你的數據。 – r2evans

+0

可以請你詳細說明你的答案 –

回答

0

作爲回答Akrun,可以使用lapply計數每個範圍

subj1 <- sample(1:600, 200, replace=F) 
subj2 <- sample(1:600, 200, replace=F) 
subj3 <- sample(1:600, 200, replace=F) 

df <- data.frame(subj1, subj2, subj3) 

df.2 <- lapply(df, function(x) table(cut(x, breaks = c(0, 300, 400, 500, Inf)))) 
output <- matrix(unlist(df.2), ncol = 4, byrow = TRUE) 

colnames(output) <- c("0-300","301-400", "401-500", ">500") 
rownames(output) <- c("subj1","subj2", "subj3") 

output 

> output 
     0-300 301-400 401-500 >500 
subj1 93  35  31 41 
subj2 89  35  44 32 
subj3 92  40  33 35