我使用矩阵存储一些结果如下:
#some of my program
#output is an matrix with 70 rows, each row has 4 values
for (i in 1:test_data){
for (j in 1:train_data) {
......
......
output[i,1] <- i
output[i,2] <- test_data[i, 5]
output[i,3] <- names(sort(summary(train_data[c(order(distance_vector)[1:k]), "class"]), decreasing = T)[1])
output[i,4] <- 0
}
但是,当我打印输出矩阵时,不期望第二列中的值。让我用一个元素(test_data[1,5]
)作为例子:
> print (test_data[1,5])
[1] Iris-setosa
Levels: Iris-setosa Iris-versicolor Iris-virginica
output[1,2]
在我的输出矩阵中是1,而不是Iris-setosa。我不知道如何将Iris-setosa而不是1存储到我的矩阵中?
另一个问题是我目前为矩阵赋值的方法对我来说似乎并不高效。还有其他更好的方法可以将fours值分配给矩阵中的一行吗?