2017-10-17 50 views
0

在Excel中,我可以让该组的列和计数,但IAM无法做到在R.找到100的范围和他们的计数之间的数值

对于R中做我使用剪切功能有一些休息。

cut(elapsed, breaks=seq(min(elapsed),max(elapsed)+100,50), include.lowest=T) 

这里我附上了数据的png和所需的输出。 但上面的代码没有给我需要的输出。

这是我的数据

input data

和我需要的输出:

400  9 
500  4 
600  2 
700  5 
800  3 
900  3 
+4

你'cut',你需要在聚合后某种方式。 'table'在这里最有意义。 – A5C1D2H2I1M1N2O1R2T1

+0

为了让您的示例具有可重现性,请在问题摘要中共享'dput(elapsed)'的输出。我同意@ A5C1D2H2I1M1N2O1R2T1,你需要在使用'cut'后使用'table'功能。 – TUSHAr

回答

5

这应该工作:

data.frame(table(elapsed %/% 100)) 

例如:

elapsed <- c(400, 423, 423, 534, 534, 639, 602, 812, 703) 
data.frame(table(elapsed %/% 100)) 
    Var1 Freq 
1 4 3 
2 5 2 
3 6 2 
4 7 1 
5 8 1 

对于所需的结果,数百名使用此:

res <- data.frame(table(elapsed %/% 100)) 
res$Var1 <- as.numeric(res$Var1) * 100 
+0

@ user7462639这是否行之有效? – PoGibas

+0

@ PoGibas嗨,它不满足我的完整要求,但这给了一些idea.where我犯了错误。我尝试以不同的方式使用ggplot2。我不知道它是否正确的过程或不.'ggplot_build(ggplot()+ aes (elapsed)+ geom_histogram(binwidth = 100))$ data [1] [[1]] [,c(2:3)]。代码完全符合我的要求。 – user7462639

+0

而且我的数据每次都会动态变化,因为我应该调整间隔**(100到10,000)。**并计算间隔中有多少个值。你能给出任何想法,我如何改变基于动态数据的时间间隔。 Thankyou – user7462639

2

你可以试试:

require(magrittr) 

elapsed <- runif(100, 400, 1000) %>% round 

cut(elapsed, breaks = seq(400,1000,100), 
    labels = as.character(seq(400,900,100)), 
    include.lowest=TRUE) %>% table 

为您提供:

400 500 600 700 800 900 
15 22 16 9 20 18 
+3

此答案中没有使用'plyr'函数。你可以为管道加载'magrittr',(或者'dplyr',我想不太直接)。对于newby问题,我会建议不要使用管道或解释它是什么。 (并解释说这不是绝对必要的。) – Gregor