RCalcLabels()

Determines the cluster label vector and the associated center distance vector based on a value matrix and a cluster center matrix. For more information on clusters, see chapter Classification Wizard - Clustering.

Synopsis

int RCalcLabels( const dyn_dyn_float vals, const dyn_dyn_float& clusterCen, dyn_int& clusterVec, dyn_float& centerDist, int userData = 0);

Parameters

Parameter Description
vals Matrix of values
clusterCen Return cluster center matrix
clusterVec Return vector of cluster IDs
centerDist Return parameter of center distance vector associated to cluster ID vector
userData User data of the function call. The user data variable can be set to an integer value and be used to detect errors when calling R functions. Set the variable to an integer value and when the function is called and an error occurs, the specified integer value is returned.

Return Value

The function returns 0 if it was successfully executed.

Description

Determines the cluster label vector and the associated center distance vector based on a value matrix and a cluster center matrix.

Example

Determines the cluster label vector and the associated center distance vector based on a value matrix and a cluster center matrix.

#uses "CtrlR"
main()
{
  //Create a matrix of values
  dyn_float df1 = makeDynFloat(31,31,33,32,34,33,32,35,29,34,38,40,37,38,36,36,36,39,38,40,35,32,34,32,34,29,29,28,31,28,30,34,33,28,31,32,33,33,33,35,36,36,40,38,40,37,40,38,40,38);
  dyn_float df2 = makeDynFloat(401,381,382,392,406,372,361,405,392,399,350,342,346,354,304,345,320,317,356,323,386,406,405,396,400,401,365,400,391,398,362,368,363,373,389,370,406,386,402,367,379,380,406,389,374,379,399,406,377,407);
  dyn_float df3 = makeDynFloat(89,85,90,90,99,88,83,102,81,97,95,98,92,96,78,89,83,89,97,93,97,93,99,91,97,83,76,80,87,80,78,90,86,75,86,85,96,91,95,92,98,98,116,106,107,100,114,111,108,111);
  dyn_float df4 = makeDynFloat(63,97,73,73,75,75,80,93,96,77,86,81,85,83,74,68,73,63,86,60,85,93,90,79,79,68,81,66,65,95,96,71,72,81,73,63,84,75,67,77,73,85,100,95,74,71,97,98,67,63);
  dyn_float df5 = makeDynFloat(4,10,10,-4,8,8,-3,3,8,9,6,7,0,3,10,8,3,9,10,8,9,-3,6,9,1,3,6,-4,0,-2,-2,7,6,3,-2,6,8,8,0,3,-3,2,3,10,6,1,4,4,2,8);
  dyn_float df6 = makeDynFloat(35,32,34,34,38,34,33,36,31,30,37,39,39,34,33,39,30,33,37,35,44,40,41,41,43,44,44,40,42,45,37,30,30,33,33,35,36,39,36,34,34,30,32,30,30,32,31,34,35,38);
  dyn_string labels = makeDynString(0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4);
  string err_desc;
  int context;
  //Add values
  dyn_dyn_float ddf1;
  dynAppend(ddf1,df1);
  dynAppend(ddf1,df2);
  dynAppend(ddf1,df3);
  dynAppend(ddf1,df4);
  dynAppend(ddf1,df5);
  dynAppend(ddf1,df6);
  /* The example calls RKMEans(Calls the k-means algorithm and returns the cluster vector and cluster center matrix.)
  and RCalcLabels (Determines the cluster label vector and the associated center distance vector based on a value matrix and a cluster center matrix.)*/
  dyn_int clusterVec; //Return parameter of cluster ID vector
  dyn_dyn_float clusterCen; //Return parameter of cluster center matrix
  dyn_float centerDist; //Return parameter of center distance vector associated to cluster ID vector
  bool scale = TRUE; //scale factor
  int x = RKMeans(ddf1, 5, clusterVec, clusterCen, scale); //5 =  number of clusters
  int i;
  i = RCalcLabels(ddf1, clusterCen, clusterVec, centerDist);
  DebugN("clusterVec:", clusterVec, "centerDist:",centerDist);
}

Assignment

R Functions

Availability

R Control Extension

See also

RKMeans()