这是关于R的问题,而不是关于kNN的问题。基本上,在检查一些代码时,我遇到了以下咒语:
results <- (0:9)[knn(train, test, labels, k = 10, algorithm="cover_tree")]
我理解它返回的内容。我只是不理解R中的(0:n)[<foo>]
符号。我已尝试过其他值而不是0:9
,但似乎无法以有意义的方式打破这一点,以及尽职调查谷歌搜索。
任何人都可以向Python / Java / C程序员解释这个吗?
答案 0 :(得分:1)
在R中,代码0:9返回一个值为0到9的向量。方括号表示法用于索引到该向量:
(0:9)[4]#返回向量的第4个元素0:9(或3)
在这种情况下,因为knn将测试集的分类作为一个因子返回,所以它实际上做的是将该分类映射到从0到9的整数。
(0:9)[1,3,1,5]#返回一个有4个值的向量,即&lt; 0,2,0,4&gt;