3.3.2.39 MarkMark-cmd
Mark command deletes (-d) or sets a missing value (-m) to a specified dataset range. It can also manipulate masking of data points.
Syntax:
mark option dataset [range]
Options:
-d; Delete elements from dataset
Syntax: mark -d dataset [range]
Delete elements from dataset. If dataset is in a worksheet, this command deletes the specified rows (of all columns in the worksheet) from the worksheet. For example, the following script deletes row index 10 to row index 20 from the current worksheet, cell contents are shifted up:
range bb = col(2)[10:20];
mark -d bb;
To delete rows from the specified column only, use mark -dc.
-da; Ask before deleting elements from dataset
Syntax: mark -da dataset
Ask before deleting elements from dataset. Similar to the -d option, if dataset is in a worksheet, this command option will delete rows from other columns in the worksheet. For example, the following script deletes row index 10 to row index 20 in the current worksheet, after a dialog prompt:
range bb = col(2)[10:20];
mark -da bb;
-dc; Delete elements from Column Range
Syntax: mark -dc columnRange
(Origin 8) Delete elements from columnRange. This command option will not delete rows from other columns in the worksheet, which the -d option will. For example, the following script deletes row index 10 to row index 20 from col(2) only in the current worksheet, while other columns are unchanged:
range bb = col(2)[10:20];
mark -dc bb;
-m; Turn dataset elements (cells) into missing values
Syntax: mark -m dataset [range]
Turn the dataset elements (cells) into missing values. For example:
range bb = col(2)[3:6];
mark -m bb; // set col(2) row 3-6 to missing values
If the range is omitted, all cells in the dataset will become missing.
Col(dataset)=""; is equivalent to the Mark -m command without the range specification. If the cell must be set to a null (to make the cell empty), you can issue like:
for(ii=1; ii<wks.maxrows; ii++) col(2)[ii]$="";
-mc; Clear marked data
Syntax: mark -mc Dataset
Clear data that has been marked on a graph, replacing marked data with missing values.
-md; Clear all data in marked rows
Syntax: mark -md Dataset
Clear data between data markers in a graph, replacing marked data with missing values. Differs from the mark -mc option in that all worksheet rows corresponding to marked data rows are cleared.
-r; Clear all the data markers
Syntax: mark -r
Clear all data markers in a graph.
Note: We should turn the currently selected tool back to Pointer before we execute this command. For example:
dotool 0;
mark -r;
|
-s1, -s2, ... -s9;Set mask with masking value
Syntax: mark -s1, -s2, ... -s9
-s1 will set mask with masking value of 1, and -s9 will set mask with mask value of 9, while -st will toggle.
-sl; Paste mask pattern to a range of dataset
Syntax: mark -sl file range
Apply the mask pattern saved in file to range. See also mark -ss command of how to save a mask pattern.
For example,
mark -ss mymask col(A); //save mask pattern of col(A) in current worksheet to "mymask" file
mark -sl mymask col(B); //paste mask pattern in "mymask" file to col(B)
-slr; Paste mask pattern to a range of dataset cyclically
Syntax: mark -sl file range
Apply the mask pattern saved in file to range cyclically. For example,
range r1=col(A):col(B);
mark -ss "mymask" r1;
range r2=col(C):col(F);
//cyclically apply mask status to two blocks of ranges: C&D, and E&F
mark -slr "mymask" r2;
See also mark -ss command of how to save a mask pattern.
-ss; Copy mask pattern of a range of dataset
Syntax: mark -ss file range
Copy mask pattern of range into file. See also mark -sl command of how to paste the mask pattern.
For example,
mark -ss mymask col(A); //save mask pattern of col(A) in current worksheet to "mymask" file
mark -sl mymask col(B); //paste mask pattern in "mymask" file to col(B)
-st;Toggle mask off and on for a range of dataset
Syntax: mark -st Dataset
After a range of data has been masked in the graph using mark -w1, toggle the mask off and on for a range of dataset. For example:
range bb = col(2)[3:6];
mark -st bb; // mask off col(2) row 3-6 in current active dataset
-sw; Swap masked and unmasked points in dataset
Syntax: mark -sw dataset
Swap masked and unmasked points in dataset. For example:
mark -sw %C;
-u; Update all graphs with masked data
Syntax: mark -u
Update all graphs with masked data.
Use this command after changing one of the global mask properties with the following system variables:
@MC
|
Mask color. Follows the colors in the color palette: 1 = black, 2 = red, 3 = green, 4 = blue, etc.
|
@MM
|
Enable or disable mask. 0 = enable (masked points are not included in analysis). 1 = disable (masked points are included in analysis).
|
@MP
|
Show or hide masked data points in graph. 0 = show. 1 = hide.
|
| You can override show/hide masked points at the plot or page level:
|
-w1 or -w1u; Mask a range
Minimum Origin Version Required: 8.51 SR0
Syntax: mark -w1 [range]
Mask a range either in the worksheet or graph.
Syntax: mark -w1u [range]
Mask a range either in the worksheet or graph. This option supports undo.
When data is masked, it is automatically excluded from analysis. The '1' in -w1 and w1u is 'one'.
Note1: If no range is specified, then the command works on the active worksheet selection. You can programmatically select using the worksheet -s c1 r1 c2 r2 command.
// mask selected data
worksheet -s 1 2 1 4; // set range to rows 2 - 4 in column 1
mark -w1; // mask this range of data
// mask data range by passing column name
mark -w1u wcol(1)[10:15]; // mask rows 10 - 15 in column 1
// mask data range by passing range variable
range rr = [Book1]Sheet1!col(2); // set range to column 2
mark -w1 rr[10:30]; // mask rows 10 - 30 in column 2
// mask data block
range rBlock = wcol(2)[8]:wcol(4)[10]; // data block
mark -w1 rBlock; // mask a data block
Note2: To determine if a data point in a data plot is masked, use the following notation:
- datasetName<dataPointIndex> =
A return value of 0 indicates the point is not masked. 1 indicates the point is masked. For example, to determine if the fourth data point in the Book1_b data plot is masked, use:
// using dataset name
ii = Book1_b<4>;
ii = ;
// using column name
ii = [Book1]Sheet1!col(1)<3>;
ii = ;
// using range
range rr = col(2);
ii = rr<2>;
ii = ;
-wd or -wdu; Remove mask from a range
Syntax: mark -wd
Remove the mask from a range either in the worksheet or graph.
Syntax: mark -wdu
Remove the mask from a range either in the worksheet or graph. This option supports undo.
Complete Mask/Unmask example (code is destructive):
doc -s; // Shut off the Save warning flag
doc -n; // Start a new project
string strBk$ = %H;
col(1)=data(1,10);
col(2)=uniform(10);
col(3)=col(2)+.2;
plotxy (1,2:3);
string strGr$ = %H;
range rap1 = 1;
set rap1 -c 4;
win -s tv;
ty -b Data created and plotted;
win -a %(strBk$);
range ra1 = 2; // This is a worksheet range, so column = 2
mark -w1 ra1[3:8]; // range uses only rows 3 to 8
range ra2 = 3[3:8]; // This is a worksheet subrange, column 3, rows 3 to 8
mark -w1u ra2; // mask the whole subrange with undo support
ty -b Rows 3 to 8 masked in each Y column.
Graph updates to show masked points as red.
Now we will remove the mask for rows 5 and 6.;
win -a %(strGr$);
range -w ra3 = 1[5:6];
mark -wd ra3;
range -w ra4 = 2;
mark -wdu ra4[5:6];
-wtu; Toggle mask over a selected range
Syntax: mark -wtu
Toggle the mask off and on for the selected range.
-wxu; Toggle mask over a selected range, key on first cell
Syntax: mark -wxu
Toggle the mask off and on for the selected range. Differs from -wtu in that the mask state of the first cell in the range determines whether to toggle on or off. If some cells in the selected range are masked and some are not, a mask will be uniformly applied or uniformly removed, depending on the current mask state of the first cell.
-x; Create an associated X dataset
Syntax: mark -x dataset [range]
Create an associated X dataset called dataset_X, which contains whatever X values are associated with the current worksheet.
See Also
X-Functions colmask and wcellmask are faster than mark command and simpler to use.
E.g, to mask all missing value and blank value in a worksheet, run this single line X-Function:
colmask irng:=1:0 cond:=eq val:=nan;
Using mark with looping of rows and columns is way more complicated and will take forever for large worksheet
|