重写 R 的密度()(不是真的)



针对这个问题,我接受了这个挑战,让我了解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?

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() 

最新更新