пример данных
df1 = as.data.frame(matrix(c('tcp','http', 198, 4, 4, 0, 246, 1, 0, 0),
nrow = 1, ncol = 10), stringsAsFactors = TRUE)
colnames(df1) = toupper(letters[1:10])
df1
df2 = as.data.frame(matrix(c(rep('tcp', 4), rep('http', 4), c(145, 207, 296, 212),
c(1,11,10,9), c(1,11,10,9), rep(0, 4), rep(255, 4),
rep(1, 4), rep(0, 4), rep(0, 4)), nrow = 4, ncol = 10,
byrow = FALSE), stringsAsFactors = TRUE)
colnames(df2) = toupper(letters[1:10])
df2
W<-nrow(df1)+1
E<-nrow(df1)+nrow(df2)
mixusefull2<- rbind(df1,df2)
str(mixusefull2)
Я преобразовал столбцы с 3 по 10 в числовые.Я не знаю вариант использования ваших данных, но вы должны знать, что функция FD :: gowdis принимает числовой , упорядоченный или фактор переменные (вы можете посмотреть используя ? FD :: gowdis ).Таким образом, вы, вероятно, должны соответствующим образом изменить тип столбцов.
for (col in 3:10) {
mixusefull2[, col] = as.numeric(mixusefull2[, col])
}
str(mixusefull2)
dist_mixusefull2<- as.matrix(FD::gowdis(mixusefull2))
dist_mixusefull2
idxs_mixusefull2 <- KernelKnn::distMat.knn.index.dist(dist_mixusefull2,
TEST_indices = c(W:E), k = 1, threads = 1, minimize = TRUE)
idxs_mixusefull2
$test_knn_idx
[,1]
[1,] 1
[2,] 1
[3,] 1
[4,] 1
$test_knn_dist
[,1]
[1,] 0.175
[2,] 0.300
[3,] 0.300
[4,] 0.375
Я не получаю никаких NA.Является ли вывод тем, что вы на самом деле ожидаете?