【问题标题】:R - Benford - Dataset with NA stringsR - Benford - 带有 NA 字符串的数据集
【发布时间】:2015-03-13 15:18:10
【问题描述】:

我有一个宏观经济数据数据集,例如 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 字符串,但我不知道如何解决它

【问题讨论】:

  • 您从哪个包中获取benford 函数?我在 CRAN 上看到至少两个候选人。
  • 我使用的是 benford.analysis 包,而不是 Benford.Tests 包。我认为问题在于“数据”不是数字(显然),因为它是一个列表

标签: na missing-data benfords-law


【解决方案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() 中就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多