重写 R 的 density() (不是真的)
Rewriting R's density() (not really)
响应this question, I took upon the challenge to make my understanding on R's 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()
响应this question, I took upon the challenge to make my understanding on R's 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()