2013-12-23 37 views
1

數字我有一個載體使用的平板狀()與小數

a<- c(0.2849579, 0.2849579, 0.2849579) 

我想用:

tabulate(a,nbins=max(a)) 

但這返回integer(0)作爲輸出。

可以將製表符用於帶小數的數字嗎?

回答

1

這裏有一些隨機數,複製

x = sample(runif(10), 1000, TRUE) 

找到唯一的(任選地,舍入到顯著數字)的值,則找到每個x的唯一值的表的索引和製表那些

## x = signif(x, 6) 
ux = sort(unique(x)) 
idx = match(x, ux) 
n = tabulate(idx, nbins=length(ux)) 

最後,總結的結果

df = data.frame(x=ux, n=n) 

使用summary看到所有罪狀

> head(df) 
      x n 
1 0.02832152 108 
2 0.04973473 90 
3 0.19770913 96 
4 0.31591234 103 
5 0.59334322 97 
6 0.64145901 98 

或最大點數確定值

> df[df$n == max(df$n), , drop=FALSE] 
      x n 
10 0.9711141 127 
+0

感謝,但我需要使用nbins = MAX(),因爲我想確定數量佔絕大多數矢量 – user1723765

+0

@ user1723765我不明白,答案列表索引不是值。也許你想'ux [which.max(n)]''。 –

+0

+1非常好的想法。我想知道有多少浮點表示(/容差)將在獲得「唯一」值時發揮作用...例如:'x < - c(1.23456789123,1.23456789124);獨特的(x)'這裏有一個選項只有一個值是很好的。 – Arun

0

nbins的值決定了放入數字的箱的數量。由於max(a) = 0.2849579將有零箱,因此你的結果是可以預料的。

也爲tabulate幫助頁面(調用?tabulate)說:

如果「本」的元素都是數字,但不是整數,它們被截斷到最接近的整數。

根據您的問題,您可能需要先調高小數點後再應用tabulate。或者你可能想使用hist或類似的東西。