我正在尝试准备一个dist
结构以与 R 中的一个聚类库一起使用。输入是一个包含固定大小的整数向量的文件。这是一个示例输入,尽管实际输入的每行将有超过 7 列。
54540,22060,52234,49984,34093,16412,46758
47075,41863,26267,8577,45153,6133,31558
33741,50895,45860,49942,47074,30793,10483
24437,5884,44081,34891,41438,23705,30392
28575,50826,36723,27807,28152,31804,3303
12936,26572,5576,1758,5484,12165,19950
2086,33345,4810,15722,594,34,15562
19701,46650,38306,33724,24992,55188,53023
我想读入它们并让 R 将它们解释为向量,然后应该将其传递myfun
给以计算编辑距离作为距离度量。但是,似乎data
没有适当的格式,因此myfun
使用不正确的参数调用。
我目前有以下代码
library(cluster)
library(proxy)
myfun <- function(x,y) {
numDiffs <- 0;
for (i in x) {
if (x[i] != y[i])
numDiffs <- numDiffs + 1;
}
return(numDiffs);
}
summary(pr_DB)
pr_DB$set_entry(FUN = myfun, names = c("myfun", "vectorham"))
pr_DB$get_entry("MYFUN")
data <- read.table("Sample.txt", header=FALSE, sep=",")
x <- dist(x = data, method = "MYFUN")
当我运行此代码时,我收到以下错误:
Error in if (x[i] != y[i]) numDiffs <- numDiffs + 1 :
missing value where TRUE/FALSE needed
Calls: dist ... .proxy_external -> do.call -> .External -> <Anonymous>
我试过手动查看,data
它似乎是一个矩阵而不是向量的向量,但我不知道如何解决这个问题。