Имя переменной через цикл R - PullRequest
0 голосов
/ 28 июня 2018

В настоящее время я работаю над функцией, которая будет возвращать расстояние между точкой и p кластерами.

which_cluster<-function(coord){
cluster<-get_cluster(data) # return a matrix
 nbr_clusters=nrow(cluster)
 nbr_dim=ncol(cluster)
 liste<-c()

 for(i in 1:nbr_clusters){
  dist_c_i=0
  for (j in nbr_dim){
   paste('vec_', i, sep = '') 
   dim_j_c_i=cluster[i,j]
   dist_c_i<-dist_c_i+ (dim_j_c_i-coord[i])^2
  }
  dist_c_i<-sqrt(dist_c_i)
  liste<-liste[,dist_c_i]
  }

 return(liste)
 }

Я хочу, чтобы "i" и "j" в имени переменной распознавались как i и j цикла for.

Спасибо за вашу помощь. Полегче на меня, я новичок;)

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Не.

Объявление чрезмерного количества переменных медленное и неуправляемое.

Вместо этого используйте списки и матрицы.

Поскольку вы, похоже, пытаетесь создать матрицу расстояний, сохраните ее в виде матрицы, индексированной по I и j, т.е. dist[i,j].

0 голосов
/ 28 июня 2018

Использовать assign() после paste0():

assign(paste0("dim_", j, "_c_", i), cluster[i,j]) 
...