2017-05-26 15 views
2

を意味検索実際のそれと一致するように、すなわち各数字はどの間隔内にあるかを示す。例:4096は(1651.333,5053)内にあります。等しい幅間隔と間隔が、私はデータセット(KL)を持っている

次に、間隔の平均値を別々の列、つまりInterval_Meanに設定したいとします。例:(1651.333 + 5053)/ 2 = 3352.17。間隔は実際のInterval_Meanの値と整合上記YのO/Pは、各区間の平均である場合、

nm 
Actual Interval   Interval_Mean 
4096 1651.333,5053  3352.17 
-1149 -1908,0    -954.00 
13780 11499.67,13780  12639.84 
744  0,1651.333   825.67 
-461 -1908,0    -954.00 
9660 8998.333,11499.67 10249.00 
619  0,1651.333   825.67 
3466 1651.333,5053  3352.17 
0  0,1651.333   825.67 
7675 5053.00,8998.333  7025.67 
10446 8998.333,11499.67 10249.00 
12452 11499.67,13780  12639.84 
10813 8998.333,11499.67 10249.00 
11637 11499.67,13780  12639.84 
-1908  -1908,0   -954.00 
0   0,1651.333  825.67 
7441 5053.00,8998.333  7025.67 
11981 11499.67,13780  12639.84 
5389 5053.00,8998.333  7025.67 
4717 1651.333,5053  3352.17 

は、今は、新たなデータフレーム(nm)を欲しいです。

解決策を提供してくれてありがとうございます。

+0

回答には、いくつかの試行を追加することができます。 – amonk

+0

'n 'の最大カウントを与える間隔の数は' ceiling(length(kl $ Actual)/ n) 'になります。 –

答えて

0

様々な技術を試した後、最終的に私が解決策だ:

z = unique(y$brks) 

kl$interval = cut(kl$Actual, breaks = z, right = FALSE) 

kl$interval = gsub("\\[|\\)", "", kl$interval) 

intmean = within(kl, interval<-data.frame(do.call('rbind', strsplit(as.character(interval), ',', fixed=TRUE)))) 

intmean = intmean[,-1] 

str(intmean) 

intmean[sapply(intmean, is.factor)] <- lapply(intmean[sapply(intmean, is.factor)], function(x) as.numeric(as.character(x))) 

intmean$interval_mean = apply(intmean, 1,mean) 

nm = kl 

nm$Interval_Mean = intmean$interval_mean 

をそして、我々は解決策に至ります。ありがとう!!

関連する問題