2017-01-07 26 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