2

我有一个宏观经济数据的数据集,如 GDP、通货膨胀等……其中行 = 不同的宏观经济指标,列 = 年

由于缺少某些值(例如:任何国家在任何年份的 GDP),它们被记为“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 字符串,但我不知道如何解决它

4

1 回答 1

1

我也遇到过这个问题。在我的情况下,它并没有丢失数据,而是因为extract.digits()benford.analysis 包的功能有一个怪癖。该函数正在检查提供给它的数据是否是数字数据,但它使用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(),你应该没问题。

于 2015-11-05T17:33:17.743 回答