【问题标题】:Rewriting R's density() (not really)重写 R 的密度()(不是真的)
【发布时间】:2021-04-21 23:08:27
【问题描述】:

响应this question,我接受了挑战,以了解R的density()函数。

由于我对 R 非常陌生,我对 c() 函数的向量一无所知,这使我使用列表作为最接近的形式。

我会做这个功能:

def density(x, bw, adjust):
    bw2 = None
    result = 0
    if bw == "nrd0":
        bw2 = 31.39367
    else:
        print("No such bandwidth.")
    for i in range[len(x)]:
        x[i] = x[i] * bw2
    for i in range[len(x)]:
        result = result + x[i]
    return result * adjust

我想测试一下:

x = [1, 3, 5]
kern = density(x, "nrd0", 1)
print(kern)

我得到了 2 个错误,主要的一个是 TypeError

如果您想进一步了解,这里是整个终端消息:

Traceback (most recent call last):
  File "density.py", line 15, in <module>
    kern = density(x, "nrd0", 1)
  File "density.py", line 8, in density
    for i in range[len(x)]:
TypeError: 'type' object is not subscriptable

如何修复TypeError

【问题讨论】:

    标签: python r function typeerror kernel-density


    【解决方案1】:
    for i in range[len(x)]:
            x[i] = x[i] * bw2
    

    你有range[],而它应该是()。尝试改变它。 下面是一个例子:

    l = [10, 20, 30, 40] 
    for i in range(len(l)): 
        print(l[i], end =" ") 
    print() 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-08
      • 2020-02-24
      • 1970-01-01
      • 2018-10-13
      • 2014-03-03
      • 2021-05-25
      • 2012-09-21
      • 2012-03-04
      相关资源
      最近更新 更多