2015-03-13 45 views
2

我已经像GDP,通货膨胀,等等中行=不同的宏观经济指标和列=年的R - 本福德 - 数据集与NA弦乐器

由于缺少一些值(例如宏观经济数据的数据集:任何国家的国内生产总值在任何一年),它们被收取为“不适用”。

当我执行以下操作:

# 
data = read.table("14varnumeros.txt", header = FALSE, sep = "", na.strings = "NA", dec = ".", strip.white = TRUE) 

benford(data, number.of.digits = 1, sign = "both", discrete=TRUE, round=3) 
# 

它给我这个错误:

Error in extract.digits(data, number.of.digits, sign, second.order, discrete = discrete, : 
    Data must be a numeric vector 

我认为这是因为NA串的,但我不知道如何解决它

+0

你从哪个包得到'benford'函数?我看到CRAN上至少有两名候选人。 – kdopen 2015-03-13 15:30:29

+1

我正在使用benford.analysis包,而不是Benford.Tests包。我认为问题在于“数据”不是数字(显然),因为是一个列表 – Pablo 2015-03-13 16:07:55

回答

1

我也遇到过这个问题。就我而言,它并不是缺少数据,而是因为benford.analysis软件包的extract.digits()函数的一个怪癖。该功能正在检查提供给它的数据是否是数字数据,但是它使用class(dat) != "numeric"而不是使用is.numeric()函数。

这产生了意想不到的错误。考虑下面的代码:

library(benford.analysis) 

dat <- data.frame(v1 = 1:5, v2 = c(1, 2, 3, 4, 5)) 

benford(dat$v1)   # produces error 

我在Github上提交一个问题,但你可以简单地包裹在as.numeric()你的数据,你应该罚款。