这里有一个初学者的问题:我有一个函数cos.dissim
,我用它来计算两个向量之间的不相似性,当我用它自己用这样的设置值调用它时它工作正常:< / p>
doc.number = 1
cos.dissim(doc.matrix[doc.number, ], SK$prototype[SK$cluster[doc.number], ])
但是当我尝试将它放在循环中来检查所有30个文档时,代码什么都不做。我没有收到任何类型的错误消息,代码只是没有输出任何内容。
dissim.tot = function(){
for(x in 1:30){
doc.number = x
cos.dissim(doc.matrix[doc.number, ], SK$prototype[SK$cluster[doc.number], ])
}
}
我错过了一些明显的东西吗?我是该语言的新手,并没有创建多个for
循环。
答案 0 :(得分:1)
for
返回NULL
,因此,对于您的工作方法,您需要将每次传递的结果分配给对象。
例如:
sqr <- function(x) x^2 # square x
f <- function() {
y <- numeric() # initialize the output vector
for (i in 1:10) {
y <- c(y, sqr(i)) # append the square of i to y
}
return(y)
}
f()
# [1] 1 4 9 16 25 36 49 64 81 100
那就是说,这样的事也应该有效:
sapply(1:30, cos.dissim, doc.matrix[i, ], SK$prototype[SK$cluster[i], ])