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