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
Availability
See also