使用带有小数的数字的tabulate()

时间:2013-12-23 15:27:19

标签: r

我有一个载体

a<- c(0.2849579, 0.2849579, 0.2849579)

我想用:

tabulate(a,nbins=max(a))

但这会返回integer(0)作为输出。

可以将表格用于带小数的数字吗?

2 个答案:

答案 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)

使用摘要查看所有计数

> 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

答案 1 :(得分:0)

nbins的值决定了数字的放置数量。由于max(a) = 0.2849579将有零个分箱,因此您的结果是可以预期的。

tabulate的帮助页面(使用?tabulate调用)表示:

  

如果'bin'的元素是数字但不是整数,则它们被截断为最接近的整数。

根据您的问题,您可能需要先升级小数,然后应用tabulate。或者你可能想要使用hist或类似的东西。