| 項目 | サンプル | |||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6:4 でテーブルを前後2つに分けたい | 
  | 
  |||||||||||||||||||||||||||||||||||||||||||||||||
| 6:4 でテーブルをランダムに分けたい | 
  | 
  |||||||||||||||||||||||||||||||||||||||||||||||||
| キーを単位に 6:4 のブロック比で前後2つに分けたい | 
  | 
  |||||||||||||||||||||||||||||||||||||||||||||||||
| キーを単位に 6:4 のブロック比でランダムに分けたい | 
  | 
  
  | 
=> | 
 
  | 
c1("C1") = {1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };
c2("C2") = {10,10,20,20,21,30,32,32,32,40};
table = cbind(c1,c2);
//
ratio = 0.6;
nr = as.integer(nrow(table)*ratio);
keycol = {1:nr};
result = sel(row=keycol, table);
result2 = sel(not row=keycol, table);
  | 
=> | 
 
  | 
c1("C1") = {1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };
c2("C2") = {10,10,20,20,21,30,32,32,32,40};
table = cbind(c1,c2);
//
ratio = 0.6;
ijudge = as.integer(nrow(table)*ratio);
ctemp = shuffle({1:nrow(table)});
result = sel(ctemp(1) <= ijudge, table);
result2 = sel(ctemp(1) > ijudge, table);
  | 
=> | 
 
  | 
c1("C1") = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4 };
c2("C2") = {10,10,20,20,21,30,32,32,32,40};
table = cbind(c1,c2);
//
ratio = 0.6;
keyColName = "C1";
keyCol = remove_dup(table(keyColName), keyColName);
nr = as.integer(nrow(keyCol) * ratio);
keyColBefore = sel(row={1:nr}, keyCol);
result = sel(belong(table(keyColName), keyColBefore), table);
result2 = sel(not belong(table(keyColName), keyColBefore), table);
  | 
=> | 
 
  | 
c1("C1") = {1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };
c2("C2") = {10,10,20,20,21,30,32,32,32,40};
table = cbind(c1,c2);
//
keyColName = "C1";
ratio = 0.6;
c1uniq("C1") = remove_dup(table(keyColName), keyColName);
c2rate("C2") = shuffle({1:nrow(c1uniq)});
tableJudge = cbind(c1uniq, c2rate);
ijudge = as.integer(nrow(tableJudge)*ratio);
mergeTable = merge(table, tableJudge, "00", keyColName, "C1");
ic=ncol(mergeTable);
result = sel(mergeTable(ic) <= ijudge, table);
result2 = sel(mergeTable(ic) > ijudge, table);
c1("C1") = {1, 1, 2, 2, 2, 3, 3, 3, 4, 4 };
c2("C2") = {10,10,20,20,21,30,32,32,32,40};
c1 = as.string(c1);
table = cbind(c1,c2);
//
keyColName = "C1";
ratio = 0.6;
key = table(keyColName);
uniqueKey = counts(key); // 重複を取り除く
keyLearn = make_sample(uniqueKey, ratio);
keyTest = sel(not belong(uniqueKey, keyLearn), uniqueKey);
result = sel(belong(key, keyLearn), table);
result2 = sel(belong(key, keyTest), table);