问:
Sybase - create filename with date in "output to" filename
Was trying to datestamp the output filename - but keep getting errors -- along the lines of:

```<code>Select * from Orders
output to 'c:'+ select (CONVERT(varchar(10), GETDATE(), 120)) + 'orders.csv'
</code>```

Any help appreciated...

答:
I had similar problem on Sybase 9 - I had to write each procedure / function body inside spearate file named as that procedure. So I had to dynamically create file name using name of each procedure (or function). Below is my solution (works in isql):</p>

```<code>begin
    declare folder varchar (40);
    declare fileName varchar(60);
    -- folder parameter is our destination path - the 4 backslashes are important here
    set folder = 'c:\\\\test\\\\sql\\\\';
    -- here we are iterating over all procedures / functions
    for p as curs dynamic scroll cursor for
        Select distinct sysobjects.name
            from sysobjects inner join syscomments
            on sysobjects.id = syscomments.id where sysobjects.type = 'P'
    do
        -- each procedure must be inside separate file named like that procedure
        set fileName =  folder + name + '.sql';
        -- finally, there are answer to original question:
        -- we are exporting data into file, whose name is defined dynamically
        unload select proc_defn from SYS.SYSPROCEDURE where proc_name = name
            to fileName escapes off;
    end for;
end
</code>```

Body:
Was trying to datestamp the output filename - but keep getting errors -- along the lines of:

Select * from Orders
output to 'c:'+ select (CONVERT(varchar(10), GETDATE(), 120)) + 'orders.csv'

Any help appreciated...

Body:
I had similar problem on Sybase 9 - I had to write each procedure / function body inside spearate file named as that procedure. So I had to dynamically create file name using name of each procedure (or function). Below is my solution (works in isql):

begin
    declare folder varchar (40);
    declare fileName varchar(60);
    -- folder parameter is our destination path - the 4 backslashes are important here
    set folder = 'c:\\\\test\\\\sql\\\\';
    -- here we are iterating over all procedures / functions
    for p as curs dynamic scroll cursor for
        Select distinct sysobjects.name
            from sysobjects inner join syscomments
            on sysobjects.id = syscomments.id where sysobjects.type = 'P'
    do
        -- each procedure must be inside separate file named like that procedure
        set fileName =  folder + name + '.sql';
        -- finally, there are answer to original question:
        -- we are exporting data into file, whose name is defined dynamically
        unload select proc_defn from SYS.SYSPROCEDURE where proc_name = name
            to fileName escapes off;
    end for;
end


来源: stackexchange

问:
Cassandra gossipinfo severity explained
I was unable to find a good documentation/explanation as to what severity indicates in nodetool gossipinfo. was looking for a detailed explanation but could not find a suitable one.

答:
Severity reports activity that happens on the particular node (compaction, etc.), and this information then is used to make a decision on what node could better handle the request.  There is discussion in original JIRA about this functionality & how this information is used.

P.S. Please see Chris's answer about changes in post 3.10 versions - I wasn't aware about these changes...

ContentLicense: CC BY-SA 3.0

Title: Cassandra gossipinfo severity explained


问:
Excel: Applying functions to a range of ranges using multi-cell array-formula

Can you apply a builtin function that takes a range (e.g. AVERAGE()), and have it apply to a multiple ranges?

I'm currently finishing up a pretty basic data-analysis unit with a small Excel segment and I had a past assignment that involved analysing some housing data.

One task involved averaging and rounding the residential housing prices of a few cities for each time period.

The target data is in the worksheet Residential_Houses, formatted such that cities are columns and time periods are rows spanning: C7:J30. With the goal to have the averages of each row in the worksheet Analysis spanning C7:C30.

My simple solution was to write the formula:

```<code>=ROUND(AVERAGE(Residential_Houses!C7:J7), 2)
</code>```

Into Analysis!C7 and then used Excel's "AutoFill" feature to generate the formulae for Analysis!C8:C30. This worked fine, and the results were correct but I lost marks for not explicitly using cell array formula.

Instead the sample answer I was given was this monolithic line:

```<code>{=ROUND((Residential_Property!C7:C30+Residential_Property!D7:D30+Residential_Property!E7:E30+Residential_Property!F7:F30+Residential_Property!G7:G30+Residential_Property!H7:H30+Residential_Property!I7:I30+Residential_Property!J7:J30)/8,2)}
</code>```

It seems clear that the intent of this code is to take the average of columns C-J for each row 7-30, but it avoids using the AVERAGE() builtin. This works, but it's cumbersome, and wouldn't scale if there were more than a few columns in this test data.

The crux of my question here is how can you combine functions that already operate on ranges, with cell array formula to process multiple ranges with a single formula?

My intuition tells me it might be something like this:

```<code>{=AVERAGE((C7:J7):(C30:J30))}
</code>```

Or something involving indirect addressing, but I can't seem to find any detailed information on the topic. All of the array formula resources I've found so far have been limited to basic arithmetic and single dimension ranges. Could someone point me in the right direction here, or is this just not possible with array formula?

EDIT: For anyone who stumbles upon this in the future. I chose Barry's solution because it helped me understand how to generalise this concept (replacing the range with a function that can slice a range). But as Scott notes, OFFSET() is volatile; so INDEX() is a better way to do this if you're working with large datasets.

答:
Here is a formula that can be entered as one array formula and get results.  It can also be entered normally and copied down.

```<code>=ROUND(AVERAGE(INDEX($C$7:$J$30,ROW()-MIN(ROW($C$7:$J$30))+1,0)),2)
</code>```

Body:
Can you apply a builtin function that takes a range (e.g. AVERAGE()), and have it apply to a multiple ranges?

I'm currently finishing up a pretty basic data-analysis unit with a small Excel segment and I had a past assignment that involved analysing some housing data.

One task involved averaging and rounding the residential housing prices of a few cities for each time period.

The target data is in the worksheet Residential_Houses, formatted such that cities are columns and time periods are rows spanning: C7:J30. With the goal to have the averages of each row in the worksheet Analysis spanning C7:C30.

My simple solution was to write the formula:

=ROUND(AVERAGE(Residential_Houses!C7:J7), 2)

Into Analysis!C7 and then used Excel's "AutoFill" feature to generate the formulae for Analysis!C8:C30. This worked fine, and the results were correct but I lost marks for not explicitly using cell array formula.

Instead the sample answer I was given was this monolithic line:

{=ROUND((Residential_Property!C7:C30+Residential_Property!D7:D30+Residential_Property!E7:E30+Residential_Property!F7:F30+Residential_Property!G7:G30+Residential_Property!H7:H30+Residential_Property!I7:I30+Residential_Property!J7:J30)/8,2)}

It seems clear that the intent of this code is to take the average of columns C-J for each row 7-30, but it avoids using the AVERAGE() builtin. This works, but it's cumbersome, and wouldn't scale if there were more than a few columns in this test data.

The crux of my question here is how can you combine functions that already operate on ranges, with cell array formula to process multiple ranges with a single formula?

My intuition tells me it might be something like this:

{=AVERAGE((C7:J7):(C30:J30))}

Or something involving indirect addressing, but I can't seem to find any detailed information on the topic. All of the array formula resources I've found so far have been limited to basic arithmetic and single dimension ranges. Could someone point me in the right direction here, or is this just not possible with array formula?

EDIT: For anyone who stumbles upon this in the future. I chose Barry's solution because it helped me understand how to generalise this concept (replacing the range with a function that can slice a range). But as Scott notes, OFFSET() is volatile; so INDEX() is a better way to do this if you're working with large datasets.

Body:
Here is a formula that can be entered as one array formula and get results.  It can also be entered normally and copied down.

=ROUND(AVERAGE(INDEX($C$7:$J$30,ROW()-MIN(ROW($C$7:$J$30))+1,0)),2)


问:
normalizr setting a new property and grouping
I have a JSON returning from my API.

```<code>[{
        "_id": "id1",
        "userId": "u1",
        "createdOn": "2017-11-13T19:24:05.269Z"
    }, {
        "_id": "id2",
        "userId": "u2",
        "createdOn": "2017-11-13T19:23:59.777Z"
    }, {
        "_id": "id3",
        "userId": "u3",
        "createdOn": "2017-11-09T17:34:14.507Z"
    }, {
        "_id": "id4",
        "userId": "u4",
        "createdOn": "2017-11-08T18:15:54.303Z"
    }
]
</code>```

First I need to split createdOn ( like createdOn.split("T")[0]) and set a new property createdDate which contains a date only string. Then I want to categorize this based on the new property createdDate and then group them into items which are created on the same date. So I am trying to get a structure as follows.

```<code>{
    "history": {
        "2017-11-08": {
            "id4": {
                "_id": "id4",
                "userId": "u4",
                "createdOn": "2017-11-08T18:15:54.303Z",
                "createdDate": "2017-11-08"
            }
        },
        "2017-11-09": {
            "id3": {
                "_id": "id3",
                "userId": "u3",
                "createdOn": "2017-11-09T17:34:14.507Z",
                "createdDate": "2017-11-09"
            }
        },
        "2017-11-13": {
            "id1": {
                "_id": "id1",
                "userId": "u1",
                "createdOn": "2017-11-13T19:24:05.269Z",
                "createdDate": "2017-11-13"
            },
            "id2": {
                "_id": "id2",
                "userId": "u2",
                "createdOn": "2017-11-13T19:23:59.777Z",
                "createdDate": "2017-11-13"
            }
        }
    }
}
</code>```

I tried different options with 'processStrategy'(for spliting date time string) and also multiple schema

```<code>     export const historySchema = new schema.Entity(
      "history",
      {},
      { idAttribute: "_id" },
    );

    export const historyGroupingSchema = new schema.Entity(
      "history",
      { el: [historySchema] },
      { idAttribute: "createdDate" },
    );

normalize(history, [
      historyGroupingSchema,
    ])
</code>```

but doesn't work. How to do this with normalizr.

答:
To Categorize objects based on just date part of created date you need to loop through each object and parse the created date (which is 2nd question) i have created a function which will return just date. you can change the format there are other good js library available specially momentjs
Once you parse the dates then you can loop the array and fetch the objects with same date

var p=[{
        "_id": "id1",
        "userId": "u1",
        "createdOn": "2017-11-13T19:24:05.269Z"
    }, {
        "_id": "id2",
        "userId": "u2",
        "createdOn": "2017-11-13T19:23:59.777Z"
    }, {
        "_id": "id3",
        "userId": "u3",
        "createdOn": "2017-11-09T17:34:14.507Z"
    }, {
        "_id": "id4",
        "userId": "u4",
        "createdOn": "2017-11-08T18:15:54.303Z"
    }
];

  function getDatepart(createdOn)
  {
    var dateFieldValue= new Date(createdOn)
    var year = dateFieldValue.getFullYear()+"";
    var month = (dateFieldValue.getMonth()+1)+"";
    var day = dateFieldValue.getDate()+"";
    var dateFormat = year + "-" + month + "-" + day;//use your format
    console.log(dateFormat)
    return dateFormat;

  }
  getDatepart(p[0].createdOn)```

Body:
I have a JSON returning from my API.

[{
        "_id": "id1",
        "userId": "u1",
        "createdOn": "2017-11-13T19:24:05.269Z"
    }, {
        "_id": "id2",
        "userId": "u2",
        "createdOn": "2017-11-13T19:23:59.777Z"
    }, {
        "_id": "id3",
        "userId": "u3",
        "createdOn": "2017-11-09T17:34:14.507Z"
    }, {
        "_id": "id4",
        "userId": "u4",
        "createdOn": "2017-11-08T18:15:54.303Z"
    }
]

First I need to split createdOn ( like createdOn.split("T")[0]) and set a new property createdDate which contains a date only string. Then I want to categorize this based on the new property createdDate and then group them into items which are created on the same date. So I am trying to get a structure as follows.

{
    "history": {
        "2017-11-08": {
            "id4": {
                "_id": "id4",
                "userId": "u4",
                "createdOn": "2017-11-08T18:15:54.303Z",
                "createdDate": "2017-11-08"
            }
        },
        "2017-11-09": {
            "id3": {
                "_id": "id3",
                "userId": "u3",
                "createdOn": "2017-11-09T17:34:14.507Z",
                "createdDate": "2017-11-09"
            }
        },
        "2017-11-13": {
            "id1": {
                "_id": "id1",
                "userId": "u1",
                "createdOn": "2017-11-13T19:24:05.269Z",
                "createdDate": "2017-11-13"
            },
            "id2": {
                "_id": "id2",
                "userId": "u2",
                "createdOn": "2017-11-13T19:23:59.777Z",
                "createdDate": "2017-11-13"
            }
        }
    }
}

I tried different options with 'processStrategy'(for spliting date time string) and also multiple schema

     export const historySchema = new schema.Entity(
      "history",
      {},
      { idAttribute: "_id" },
    );

    export const historyGroupingSchema = new schema.Entity(
      "history",
      { el: [historySchema] },
      { idAttribute: "createdDate" },
    );

normalize(history, [
      historyGroupingSchema,
    ])

but doesn't work. How to do this with normalizr.


问:
Output the input of a lambda when triggered?
I have a very simple piece of lambda code (written in java), and the trigger is based on a "PUT" in an S3 bucket. It listens directly to the bucket via the Lambda trigger dashboard.

There are two questions here, that might help me get my input logged by the lambda :

1 ) Since this is a trigger pointed directly at S3 from the lambda dashboard, show the first argument of my lambda be something OTHER than an SNSEvent? Is this a different type of event? If so, what am I looking for - because I need this to be directly triggered in the way I have this configured.

2 ) Once I have the right object in that signature, do I simple LOG.info the object to see it in monitoring? or do I need to do some other magic

EDIT : Since I mentioned the signature - here is right now :

```<code>public static void lambdaMethod(SNSEvent input, Context context) throws IOException {
</code>```

I am not sure if that first argument is correct, for a direct trigger.

答:
You can use the S3Event.

```<code>import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.event.S3EventNotification.S3EventNotificationRecord;

public class S3EventProcessorTest implements
        RequestHandler<S3Event, String> {

    public String handleRequest(S3Event s3event, Context context) {
        // your code here
    }
}
</code>```

See the Java section of this s3-example for a reference.

As far as logging is concerned, You can configure Log4j  and use its methods logger.error(), logger.debug() and logger.log() to send events to CloudWatch Logs or you can just use System.out.println() as well.

See this Logging (Java) for more details.

Body:
I have a very simple piece of lambda code (written in java), and the trigger is based on a "PUT" in an S3 bucket. It listens directly to the bucket via the Lambda trigger dashboard.

There are two questions here, that might help me get my input logged by the lambda :

1 ) Since this is a trigger pointed directly at S3 from the lambda dashboard, show the first argument of my lambda be something OTHER than an SNSEvent? Is this a different type of event? If so, what am I looking for - because I need this to be directly triggered in the way I have this configured.

2 ) Once I have the right object in that signature, do I simple LOG.info the object to see it in monitoring? or do I need to do some other magic

EDIT : Since I mentioned the signature - here is right now :

public static void lambdaMethod(SNSEvent input, Context context) throws IOException {

I am not sure if that first argument is correct, for a direct trigger.

Body:
You can use the S3Event.

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.event.S3EventNotification.S3EventNotificationRecord;

public class S3EventProcessorTest implements
        RequestHandler<S3Event, String> {

    public String handleRequest(S3Event s3event, Context context) {
        // your code here
    }
}

See the Java section of this s3-example for a reference.

As far as logging is concerned, You can configure Log4j  and use its methods logger.error(), logger.debug() and logger.log() to send events to CloudWatch Logs or you can just use System.out.println() as well.

See this Logging (Java) for more details.


问:
Total sum of all multiplied values of textboxes
I want to multiply the textbox values and after multiplication sum of all answer values. Example:

```<code>SUM (NSP * Current Sales)
</code>```

This program is working fine but when I change any value it adds the change not replace the values. It should replace the value of array.

And if possible, please minimize the code logic also. Thanks.

$(document).ready(function() {
  var val1;
  var val2;
  var multi;
  one();
  second();
});

function one() {
  $(document).on("change", ".qty1", function() {
    var sumqty1 = 0;
    sumqty1 += $(this).val();
    val1 = sumqty1;
  });
}

function second() {
  $(document).on("change", ".qty2", function() {
    var sumqty1 = 0;
    var sumqty2 = 0;
    sumqty1 += $(this).closest('tr').find('.qty1').val();
    sumqty2 += $(this).val();
    val1 = sumqty1;
    val2 = sumqty2;
    mul(val1, val2);
  });
}
var arr = [];

function mul(a, b) {
  var hh;
  multi = a * b;
  arr.push(multi);
  var totalsum = 0;
  for (var i in arr) {
    var value = arr[i];
    totalsum = parseInt(totalsum, 10) + parseInt(value, 10);
    $("#totalvalue").text(totalsum);
  }
  console.log(arr);
}```
<pre class="snippet-code-html lang-html prettyprint-override"><code><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table style="width: 100%;" width="100%" cellspacing="0">
  <thead>
    <tr>
      <th>Product Name</th>
      <th>NSP</th>
      <th>Current Sales</th>
      <th>Closing Balance</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th>Product Name</th>
      <th>NSP</th>
      <th>Current Sales</th>
      <th><span id='totalvalue'></span></th>
    </tr>
  </tfoot>
  <tbody>
    <tr>

      <td>Satou</td>
      <td><input type="text" class="qty1" value="1" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>23</td>
    </tr>
    <tr>
      <td>panadol</td>
      <td><input type="text" class="qty1" value="2" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>131</td>
    </tr>
    <tr>
      <td>disprine</td>
      <td><input type="text" class="qty1" value="3" disabled/></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>37</td>
    </tr>
    <tr>
      <td>panadol</td>
      <td><input type="text" class="qty1" value="4" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>173</td>
    </tr>
  </tbody>
</table></code>```

答:
You are continually adding new values into arr and there's a whole lot of shared mutable state going on here.

If there aren't that many rows in the table, you're best off just recalculating the whole total each time a value changes. Less risk of the data stepping on itself that way:

$(document).ready(function() {
  $(document).on('change', '.qty1, .qty2', recalculate);

  function getTotal() {
    return $('#myTable tr')
      .toArray()
      .map($)
      .map(function (row) {
        return row.find('.qty1').val() * row.find('.qty2').val();
      })
      .filter(function (val) { return !Number.isNaN(val); })
      .reduce(function (a, b) { return a + b; }, 0);
  }

  function recalculate() {
    $("#totalvalue").text(getTotal());
  }
});```
<pre class="snippet-code-html lang-html prettyprint-override"><code><html>
<head>
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
</head>
<body>
<table id="myTable" style="width: 100%;" width="100%" cellspacing="0">
  <thead>
    <tr>
      <th>Product Name</th>
      <th>NSP</th>
      <th>Current Sales</th>
      <th>Closing Balance</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th>Product Name</th>
      <th>NSP</th>
      <th>Current Sales</th>
      <th><span id='totalvalue'></span></th>
    </tr>
  </tfoot>
  <tbody>
    <tr>

      <td>Satou</td>
      <td><input type="text" class="qty1" value="1" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>23</td>
    </tr>
    <tr>
      <td>panadol</td>
      <td><input type="text" class="qty1" value="2" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>131</td>
    </tr>
    <tr>
      <td>disprine</td>
      <td><input type="text" class="qty1" value="3" disabled/></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>37</td>
    </tr>
    <tr>
      <td>panadol</td>
      <td><input type="text" class="qty1" value="4" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>173</td>
    </tr>
  </tbody>
</table>
</body>
</html></code>```

Body:
I want to multiply the textbox values and after multiplication sum of all answer values. Example:

SUM (NSP * Current Sales)

This program is working fine but when I change any value it adds the change not replace the values. It should replace the value of array.

And if possible, please minimize the code logic also. Thanks.

$(document).ready(function() {
  var val1;
  var val2;
  var multi;
  one();
  second();
});

function one() {
  $(document).on("change", ".qty1", function() {
    var sumqty1 = 0;
    sumqty1 += $(this).val();
    val1 = sumqty1;
  });
}

function second() {
  $(document).on("change", ".qty2", function() {
    var sumqty1 = 0;
    var sumqty2 = 0;
    sumqty1 += $(this).closest('tr').find('.qty1').val();
    sumqty2 += $(this).val();
    val1 = sumqty1;
    val2 = sumqty2;
    mul(val1, val2);
  });
}
var arr = [];

function mul(a, b) {
  var hh;
  multi = a * b;
  arr.push(multi);
  var totalsum = 0;
  for (var i in arr) {
    var value = arr[i];
    totalsum = parseInt(totalsum, 10) + parseInt(value, 10);
    $("#totalvalue").text(totalsum);
  }
  console.log(arr);
}

      Product Name
      NSP
      Current Sales
      Closing Balance

      Product Name
      NSP
      Current Sales

      Satou
      <input type="text" class="qty1" value="1" disabled />
      <input type="text" class="qty2" value="" />
      23

      panadol
      <input type="text" class="qty1" value="2" disabled />
      <input type="text" class="qty2" value="" />
      131

      disprine
      <input type="text" class="qty1" value="3" disabled/>
      <input type="text" class="qty2" value="" />
      37

      panadol
      <input type="text" class="qty1" value="4" disabled />
      <input type="text" class="qty2" value="" />
      173

Body:
You are continually adding new values into arr and there's a whole lot of shared mutable state going on here.

If there aren't that many rows in the table, you're best off just recalculating the whole total each time a value changes. Less risk of the data stepping on itself that way:

$(document).ready(function() {
  $(document).on('change', '.qty1, .qty2', recalculate);

  function getTotal() {
    return $('#myTable tr')
      .toArray()
      .map($)
      .map(function (row) {
        return row.find('.qty1').val() * row.find('.qty2').val();
      })
      .filter(function (val) { return !Number.isNaN(val); })
      .reduce(function (a, b) { return a + b; }, 0);
  }

  function recalculate() {
    $("#totalvalue").text(getTotal());
  }
});

<html>
<head>
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
</head>
<body>
<table id="myTable" style="width: 100%;" width="100%" cellspacing="0">
  <thead>
    <tr>
      <th>Product Name</th>
      <th>NSP</th>
      <th>Current Sales</th>
      <th>Closing Balance</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th>Product Name</th>
      <th>NSP</th>
      <th>Current Sales</th>
      <th><span id='totalvalue'></span></th>
    </tr>
  </tfoot>
  <tbody>
    <tr>

      <td>Satou</td>
      <td><input type="text" class="qty1" value="1" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>23</td>
    </tr>
    <tr>
      <td>panadol</td>
      <td><input type="text" class="qty1" value="2" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>131</td>
    </tr>
    <tr>
      <td>disprine</td>
      <td><input type="text" class="qty1" value="3" disabled/></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>37</td>
    </tr>
    <tr>
      <td>panadol</td>
      <td><input type="text" class="qty1" value="4" disabled /></td>
      <td><input type="text" class="qty2" value="" /></td>
      <td>173</td>
    </tr>
  </tbody>
</table>
</body>
</html>


问:
Using filebeat with elasticsearch
I am not getting that how to run this filebeat in order to send output to elasticsearch.

This is from the filebeat.yml file,

```<code>- input_type: log

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/nginx/access.log

output.elasticsearch:
  # Array of hosts to connect to.
    hosts: ["localhost:9200"]
    index: 'filebeat_nginx'
</code>```

elasticsearch is up and running.

Now, how to run filebeat to send the log info to elasticsearch.

If I go to bin directory of filebeat, and run this command,

```<code>luvpreet@DHARI-Inspiron-3542:/usr/share/filebeat/bin$ sudo ./filebeat -configtest -e
</code>```

then it shows ,

```<code>filebeat2017/04/19 06:54:22.450440 beat.go:339: CRIT Exiting: error loading config file: stat filebeat.yml: no such file or directory
Exiting: error loading config file: stat filebeat.yml: no such file or directory
</code>```

The filebeat.yml file is in the /etc/filebeat folder. How to run it ?
Please clarify the process to run this with elasticsearch.

答:
A typical filebeat command looks like this:

```<code>/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml \
-path.home /usr/share/filebeat -path.config /etc/filebeat \
-path.data /var/lib/filebeat -path.logs /var/log/filebeat
</code>```

-c indicates your config file, as noted in the comments above. path.home is your scripts. path.config contains config files. path.data is where state is maintained. path.logs is where the filebeat process will log.

Title: Using filebeat with elasticsearch

Body:
I am not getting that how to run this filebeat in order to send output to elasticsearch.

This is from the filebeat.yml file,

- input_type: log

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/nginx/access.log

output.elasticsearch:
  # Array of hosts to connect to.
    hosts: ["localhost:9200"]
    index: 'filebeat_nginx'

elasticsearch is up and running.

Now, how to run filebeat to send the log info to elasticsearch.

If I go to bin directory of filebeat, and run this command,

luvpreet@DHARI-Inspiron-3542:/usr/share/filebeat/bin$ sudo ./filebeat -configtest -e

then it shows ,

filebeat2017/04/19 06:54:22.450440 beat.go:339: CRIT Exiting: error loading config file: stat filebeat.yml: no such file or directory
Exiting: error loading config file: stat filebeat.yml: no such file or directory

The filebeat.yml file is in the /etc/filebeat folder. How to run it ?
Please clarify the process to run this with elasticsearch.

Body:
A typical filebeat command looks like this:

/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml \
-path.home /usr/share/filebeat -path.config /etc/filebeat \
-path.data /var/lib/filebeat -path.logs /var/log/filebeat

-c indicates your config file, as noted in the comments above. path.home is your scripts. path.config contains config files. path.data is where state is maintained. path.logs is where the filebeat process will log.


问:
Type Observable<MyData> is not assignable to MyData
```<code>export class MyClass {
    data: MyData;
    constructor(private dataService: DataService) {
      this.data = this.dataService.getData(); // error
    }
}

export class DataService{
    data: MyData;
     constructor(private http: Http) { }

    getData(): Observable<MyData>{
       return Observable.from([this.fakeData()]
          .map(res=>res as MyData));
    }

    private fakeData() : MyData {
       ...
    }
}
</code>```

I'm getting error on line

```<code> this.data = this.dataService.getData()
</code>```

Type Observable is not assignable to MyData

答:
Typescript is right.

In your component, you said that data is supposed to be a MyData object.
Then, in your constructor you call your service that returns an Observable of MyData and you try to assign its result to your attribute data.

That's not how Observable works.

Here, you have two simple solutions :

Subscribing to your observable

```<code>export class MyClass {
    data: MyData;
    constructor(private dataService: DataService) {
      this.dataService.getData().subscribe((myData) => {
        this.data = myData;
      });
    }
}
</code>```

Or using the AsyncPipe in your template

```<code>export class MyClass {
    data$: Observable<MyData>; // Change the type here.
    // The $ suffix is a convention to tell that
    // this attribute is an observable.

    constructor(private dataService: DataService) {
      this.data$ = this.dataService.getData();
    }
}
</code>```

And then, in your template you can use data with the AsyncPipe

```<code><div>
    <some-component [someData]="data$ | async"></some-component>
</div>
</code>```

Body:
export class MyClass {
    data: MyData;
    constructor(private dataService: DataService) {
      this.data = this.dataService.getData(); // error
    }
}

export class DataService{
    data: MyData;
     constructor(private http: Http) { }

    getData(): Observable<MyData>{
       return Observable.from([this.fakeData()]
          .map(res=>res as MyData));
    }

    private fakeData() : MyData {
       ...
    }
}

I'm getting error on line

 this.data = this.dataService.getData()

Type Observable is not assignable to MyData

Body:
Typescript is right.

In your component, you said that data is supposed to be a MyData object.
Then, in your constructor you call your service that returns an Observable of MyData and you try to assign its result to your attribute data.

That's not how Observable works.

Here, you have two simple solutions :

Subscribing to your observable

export class MyClass {
    data: MyData;
    constructor(private dataService: DataService) {
      this.dataService.getData().subscribe((myData) => {
        this.data = myData;
      });
    }
}

Or using the AsyncPipe in your template

export class MyClass {
    data$: Observable<MyData>; // Change the type here.
    // The $ suffix is a convention to tell that
    // this attribute is an observable.

    constructor(private dataService: DataService) {
      this.data$ = this.dataService.getData();
    }
}

And then, in your template you can use data with the AsyncPipe

<div>
    <some-component [someData]="data$ | async"></some-component>
</div>


问:
RAML 1.0 include multiple files with resources
I want to define REST resources in multiple files and include them in a single RAML file
I tried this but i always get RAML errors

Main.raml
    #%RAML 1.0
title: Main RAML file to include All APIs
version: v1
baseUri: http://api.samplehost.com
/student: !include student.raml

student.raml

#%RAML 1.0
    title: student APIs
    version: v1
    baseUri: http://api.samplehost.com
    /student:
      get:  # ..etc

but I get Unknown Error in the included file: Unknown node: 'title' in Main.raml

when I remove the 'title' from the included file 'student.raml'
I got Unknown Missing required property 'title' in the student.raml file

答:
According to raml-org issue, your student.raml file should have something like this:

get:

the important part here is removing the first line

```<code>#%RAML 1.0
</code>```

Body:
According to raml-org issue, your student.raml file should have something like this:

get:

the important part here is removing the first line

#%RAML 1.0


问:
Trying to add a calculated value including the native min function
I want to add a calculated column to a data frame to find CpK on each series of STEP_NAME  (R1, R2 ...) with the DATA column as measures

Calcul for Cpk is :

```<code>m <- mean(table1$Data)
s <- sd(table1$Data)

Ts <- max(table1$HIGH_LIMIT)
Ti <- min(table1$LOW_LIMIT)

CpK <- min((m-Ti)/(3*s), (Ts-m)/(3*s))
</code>```

I tried

```<code>library(dplyr)
table2 <- table1 %>%
group_by(STEP_NAME) %>%
summarise(m = mean(DATA), s = sd(DATA), Ts = max(High_Limit),
          Ts = max(High_Limit), Ti = min(LOW_LIMIT)) %>%
          mutate(CpK = min((m-Ti)/(3*s), (Ts-m)/(3*s)))
</code>```

CpK values are always a constant and I guess the min function doesn't work with this format, any idea ? I also try to add the Cp column with Cp = (Ts-Ti)/6s and it works well

Here a dput() export of my data frame sample :

```structure(list(UUT_NAME = structure(c(31L, 31L, 31L, 31L, 31L,
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 30L, 30L, 30L,
30L, 30L, 30L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L,
15L, 15L, 15L, 15L, 15L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L,
16L, 16L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 5L, 5L, 5L, 5L, 5L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L,
13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 14L,
14L, 14L, 14L, 14L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 24L,
24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 18L, 18L, 18L, 18L,
18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L,
18L, 18L, 18L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L,
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 8L, 8L, 8L, 8L, 8L, 20L, 20L, 20L, 20L, 20L, 4L, 4L,
4L, 4L, 4L, 23L, 23L, 23L, 23L, 23L, 20L, 20L, 20L, 20L, 20L,
23L, 23L, 23L, 23L, 23L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 23L, 23L, 23L, 23L, 23L, 21L, 21L, 21L,
21L, 21L, 9L, 9L, 9L, 9L, 9L, 29L, 29L, 29L, 29L, 29L, 29L, 29L,
29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L,
29L, 29L, 29L, 29L, 29L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L,
22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 11L,
11L, 11L, 11L, 11L, 28L, 28L, 28L, 28L, 28L, 28L, 28L, 28L, 28L,
28L, 28L, 28L, 28L, 28L, 28L, 32L, 32L, 32L, 32L, 32L, 32L, 32L,
32L, 32L, 32L, 25L, 25L, 25L, 25L, 25L, 32L, 32L, 32L, 32L, 32L,
27L, 27L, 27L, 27L, 27L, 26L, 26L, 26L, 26L, 26L, 19L, 19L, 19L,
19L, 19L, 1L, 1L, 1L, 1L, 1L, 19L, 19L, 19L, 19L, 19L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 19L, 19L,
19L, 19L, 19L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("CELOGIC.MA-0530", "CELOGIC.MA-0742",
"CELOGIC.MA-0747", "CELOGIC.MA-0817", "CELOGIC.MA-0887", "CELOGIC.MA-0906",
"CELOGIC.MA-100", "CELOGIC.MA-102", "CELOGIC.MA-1441", "CELOGIC.MA-1610",
"CELOGIC.MA-1611", "CELOGIC.MA-2161", "CELOGIC.MA-2189", "CELOGIC.MA-2316",
"CELOGIC.MA-2374", "CELOGIC.MA-2454", "CELOGIC.MA-2609", "CELOGIC.MA-2610",
"CELOGIC.MA-2616", "CELOGIC.MA-2641", "CELOGIC.MA-3029", "CELOGIC.MA-3044",
"CELOGIC.MA-3083", "CELOGIC.MA-3154", "CELOGIC.MA-3238", "CELOGIC.MA-3786",
"CELOGIC.MA-3826", "CELOGIC.MA-4066", "CELOGIC.MA-4305", "CELOGIC.MA-4329",
"CELOGIC.MA-6475", "CELOGIC.MA-9014"), class = "factor"), STATION_NUM = structure(c(1L,
1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c("00 00297", "00 00323",
"00 00362", "00 00366", "00 00399"), class = "factor"), START_DATE_TIME = structure(c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 5L,
5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 8L, 8L,
8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 11L,
11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 13L, 13L, 13L, 13L,
13L, 14L, 14L, 14L, 14L, 14L, 15L, 15L, 15L, 15L, 15L, 16L, 16L,
16L, 16L, 16L, 17L, 17L, 17L, 17L, 17L, 18L, 18L, 18L, 18L, 18L,
19L, 19L, 19L, 19L, 19L, 20L, 20L, 20L, 20L, 20L, 21L, 21L, 21L,
21L, 21L, 22L, 22L, 22L, 22L, 22L, 23L, 23L, 23L, 23L, 23L, 24L,
24L, 24L, 24L, 24L, 25L, 25L, 25L, 25L, 25L, 28L, 28L, 28L, 28L,
28L, 26L, 26L, 26L, 26L, 26L, 27L, 27L, 27L, 27L, 27L, 29L, 29L,
29L, 29L, 29L, 30L, 30L, 30L, 30L, 30L, 31L, 31L, 31L, 31L, 31L,
32L, 32L, 32L, 32L, 32L, 33L, 33L, 33L, 33L, 33L, 34L, 34L, 34L,
34L, 34L, 35L, 35L, 35L, 35L, 35L, 36L, 36L, 36L, 36L, 36L, 39L,
39L, 39L, 39L, 39L, 37L, 37L, 37L, 37L, 37L, 38L, 38L, 38L, 38L,
38L, 40L, 40L, 40L, 40L, 40L, 41L, 41L, 41L, 41L, 41L, 42L, 42L,
42L, 42L, 42L, 43L, 43L, 43L, 43L, 43L, 44L, 44L, 44L, 44L, 44L,
45L, 45L, 45L, 45L, 45L, 46L, 46L, 46L, 46L, 46L, 47L, 47L, 47L,
47L, 47L, 48L, 48L, 48L, 48L, 48L, 49L, 49L, 49L, 49L, 49L, 50L,
50L, 50L, 50L, 50L, 51L, 51L, 51L, 51L, 51L, 52L, 52L, 52L, 52L,
52L, 53L, 53L, 53L, 53L, 53L, 54L, 54L, 54L, 54L, 54L, 55L, 55L,
55L, 55L, 55L, 56L, 56L, 56L, 56L, 56L, 57L, 57L, 57L, 57L, 57L,
58L, 58L, 58L, 58L, 58L, 59L, 59L, 59L, 59L, 59L, 60L, 60L, 60L,
60L, 60L, 61L, 61L, 61L, 61L, 61L, 62L, 62L, 62L, 62L, 62L, 63L,
63L, 63L, 63L, 63L, 64L, 64L, 64L, 64L, 64L, 65L, 65L, 65L, 65L,
65L, 66L, 66L, 66L, 66L, 66L, 67L, 67L, 67L, 67L, 67L, 68L, 68L,
68L, 68L, 68L, 69L, 69L, 69L, 69L, 69L, 70L, 70L, 70L, 70L, 70L,
71L, 71L, 71L, 71L, 71L, 72L, 72L, 72L, 72L, 72L, 73L, 73L, 73L,
73L, 73L, 74L, 74L, 74L, 74L, 74L, 75L, 75L, 75L, 75L, 75L, 76L,
76L, 76L, 76L, 76L, 77L, 77L, 77L, 77L, 77L, 78L, 78L, 78L, 78L,
78L, 79L, 79L, 79L, 79L, 79L, 80L, 80L, 80L, 80L, 80L, 81L, 81L,
81L, 81L, 81L, 82L, 82L, 82L, 82L, 82L, 83L, 83L, 83L, 83L, 83L,
84L, 84L, 84L, 84L, 84L, 85L, 85L, 85L, 85L, 85L, 86L, 86L, 86L,
86L, 86L), .Label = c("2014-01-27 16:30:38", "2014-05-13 13:58:38",
"2014-05-13 14:09:17", "2014-05-13 14:30:51", "2014-05-13 14:31:38",
"2014-06-19 14:30:36", "2014-06-19 14:39:36", "2014-06-19 14:42:13",
"2014-09-05 09:26:10", "2014-09-05 09:35:27", "2015-03-06 07:50:56",
"2015-03-06 07:59:56", "2015-03-09 13:52:21", "2015-03-09 14:36:44",
"2015-03-09 14:50:37", "2015-03-17 14:19:37", "2015-10-30 14:47:55",
"2015-10-30 14:49:22", "2015-10-30 14:49:49", "2015-10-30 15:03:52",
"2015-11-02 14:52:56", "2015-11-02 15:30:48", "2015-11-02 15:52:41",
"2015-11-02 16:12:23", "2015-11-03 09:20:08", "2016-03-09 14:14:01",
"2016-03-09 16:02:18", "2016-03-09 16:12:04", "2016-03-10 09:07:24",
"2016-06-02 09:45:43", "2016-06-02 10:35:59", "2016-07-22 15:43:27",
"2016-07-25 08:52:49", "2016-07-25 09:48:51", "2016-07-25 10:31:02",
"2016-07-25 11:22:45", "2016-07-25 13:13:20", "2016-07-25 13:16:02",
"2016-07-25 13:25:13", "2016-07-25 14:35:31", "2016-07-26 08:50:27",
"2016-07-26 09:40:45", "2016-11-08 09:04:39", "2016-11-08 09:57:37",
"2016-11-08 10:35:04", "2016-11-08 10:57:24", "2016-11-08 11:23:43",
"2016-11-08 11:38:34", "2016-11-08 11:50:57", "2016-11-08 11:52:16",
"2016-11-08 14:38:58", "2016-12-05 11:08:50", "2016-12-05 13:54:25",
"2017-01-16 09:49:57", "2017-01-16 10:12:53", "2017-01-17 08:34:57",
"2017-01-17 08:52:37", "2017-01-17 14:08:12", "2017-02-01 10:52:23",
"2017-02-01 11:07:24", "2017-02-17 14:32:11", "2017-02-17 14:36:12",
"2017-03-07 15:58:40", "2017-03-27 11:40:27", "2017-03-28 09:42:13",
"2017-03-28 09:48:34", "2017-06-13 11:34:39", "2017-06-13 14:13:07",
"2017-06-13 14:35:58", "2017-06-13 15:11:44", "2017-07-24 14:51:53",
"2017-09-19 09:44:11", "2017-09-19 10:04:29", "2017-09-19 10:28:29",
"2017-09-19 11:02:42", "2017-09-19 13:56:57", "2017-09-19 14:03:18",
"2017-09-19 14:04:32", "2017-09-19 14:13:17", "2017-09-28 14:22:38",
"2017-09-28 14:43:03", "2017-09-28 15:29:59", "2017-09-28 15:31:28",
"2017-09-28 15:36:36", "2017-09-28 15:49:51", "2017-09-28 16:10:26"
), class = "factor"), LOW_LIMIT = c(88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 88,
87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1), DATA = c(103.83455, 89.64711, 2.13345,
30.057545, 30.086464, 104.37667, 89.788269, 2.13431, 30.045176,
30.049561, 104.7235, 89.813126, 2.134059, 30.048182, 30.056608,
104.03241, 103.96976, 89.63073, 2.141897, 30.035461, 30.104946,
104.51376, 90.733009, 2.141215, 30.147131, 30.113092, 107.34245,
90.934967, 2.140769, 30.136806, 30.114983, 105.98895, 90.628517,
2.141326, 30.142355, 30.122778, 103.49479, 90.358688, 2.141122,
30.058239, 30.06591, 103.60199, 90.354286, 2.142168, 30.063662,
30.070904, 102.51865, 90.974564, 2.148871, 29.983458, 30.128607,
103.016, 90.883461, 2.148184, 29.975309, 30.137098, 102.54838,
89.871902, 2.142678, 29.947052, 30.094099, 102.50674, 89.974739,
2.142947, 29.953632, 30.089359, 102.88899, 90.077881, 2.142447,
29.951406, 30.092203, 105.72658, 89.542099, 2.143392, 29.941921,
29.980062, 104.56109, 90.826813, 2.13772, 29.979958, 30.028364,
104.10088, 90.849869, 2.136499, 29.981756, 30.028885, 105.10763,
90.826553, 2.137116, 29.984587, 30.029911, 104.18301, 90.603035,
2.136766, 29.987928, 30.042906, 103.85734, 90.941826, 2.135956,
29.919226, 30.054958, 106.41589, 90.797607, 2.134154, 30.109236,
30.025709, 106.77251, 90.557838, 2.132611, 30.115213, 30.049799,
104.15064, 90.598541, 2.136247, 30.099293, 29.956236, 104.50943,
90.196915, 2.136503, 30.089535, 29.956837, 104.67191, 90.35878,
2.145689, 30.158304, 30.004744, 103.27634, 90.543076, 2.144124,
30.138008, 29.987755, 103.43541, 90.312469, 2.145076, 30.144836,
29.99951, 103.84418, 90.39769, 2.145807, 30.145554, 29.995651,
103.39602, 90.332397, 2.146439, 30.082825, 30.07023, 103.07425,
90.374924, 2.145505, 30.075659, 30.067387, 102.41218, 89.970772,
2.135011, 30.171347, 30.038151, 102.64326, 90.041145, 2.13542,
30.17922, 30.034796, 102.55943, 89.94989, 2.136524, 30.172457,
30.039785, 106.16189, 90.254478, 2.143642, 30.03858, 30.034452,
105.13081, 90.153961, 2.143321, 30.020109, 30.049246, 106.46228,
90.300667, 2.14456, 30.033245, 30.04554, 105.26501, 90.428741,
2.144274, 30.013161, 30.02133, 105.58955, 90.363289, 2.1433,
30.015482, 30.013422, 105.24362, 90.616943, 2.144161, 30.019264,
30.023048, 105.71942, 90.295998, 2.144891, 30.040255, 30.038618,
102.86487, 90.426964, 2.135716, 30.147213, 30.024424, 106.71793,
90.416763, 2.142324, 29.969154, 30.00629, 103.83101, 90.53817,
2.140727, 30.008778, 30.064625, 103.05832, 90.361076, 2.13503,
30.027338, 29.993675, 106.10006, 90.594826, 2.142059, 29.958195,
29.987673, 104.86755, 90.49144, 2.135422, 30.024847, 29.990158,
104.23051, 90.12674, 2.141112, 30.018059, 30.079882, 104.76202,
90.318901, 2.135574, 30.027168, 29.994877, 104.43105, 90.119614,
2.140357, 30.023642, 30.085588, 104.82088, 90.318939, 2.134686,
30.028111, 29.993246, 104.47222, 90.162384, 2.140747, 30.012562,
30.121384, 105.17671, 90.8339, 2.137395, 30.059807, 30.14035,
103.39295, 90.590065, 2.145206, 30.091719, 29.96744, 104.08862,
89.958221, 2.145849, 30.108145, 29.999678, 103.35049, 90.352165,
2.145873, 30.091724, 29.978664, 103.6749, 90.710175, 2.145678,
30.0951, 29.98218, 104.70875, 90.30056, 2.144813, 30.094131,
29.991529, 105.17446, 90.537613, 2.142141, 30.003885, 29.930983,
104.83267, 90.660332, 2.141441, 30.012733, 29.938503, 104.96903,
90.514137, 2.142737, 29.996761, 29.921858, 105.91333, 90.392693,
2.142066, 29.996334, 29.932619, 102.83725, 90.443596, 2.150893,
30.078348, 30.150576, 104.02214, 89.949432, 2.139457, 30.164099,
30.147629, 103.8532, 90.113785, 2.138755, 30.176195, 30.155697,
103.58204, 89.905396, 2.139221, 30.16864, 30.15527, 107.18325,
90.292488, 2.143229, 30.068497, 30.207439, 105.38244, 90.118889,
2.143076, 30.074533, 30.210369, 103.70168, 90.110695, 2.135857,
30.069971, 29.974039, 106.00477, 90.324944, 2.143227, 30.061428,
30.197681, 104.40753, 90.338608, 2.136585, 30.070391, 30.036024,
104.39215, 89.585129, 2.139386, 30.088642, 29.965807, 103.16625,
90.1008, 2.147998, 30.065079, 30.106453, 104.23954, 90.078255,
2.144455, 30.073795, 30.09936, 102.45847, 90.38028, 2.14762,
30.050428, 30.095728, 104.51608, 90.032143, 2.145565, 30.091145,
30.100916, 104.83134, 90.170525, 2.14517, 30.088293, 30.095644,
104.60923, 89.934662, 2.145767, 30.079401, 30.102394, 103.24618,
90.006889, 2.148073, 30.064478, 30.1042, 105.26569, 90.563705,
2.138664, 30.020033, 29.971384, 106.9408, 90.529907, 2.135091,
30.091959, 30.089626, 107.18589, 90.570724, 2.134622, 30.084194,
30.090492, 107.58999, 90.535423, 2.135308, 30.085833, 30.089886,
106.36217, 90.431122, 2.135268, 30.083925, 30.091526, 105.21892,
90.754059, 2.138996, 30.021669, 29.973015, 104.85383, 90.454239,
2.139157, 30.031807, 29.982101), HIGH_LIMIT = c(112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1), UNITS = structure(c(2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L), .Label = c("KO", "pF"), class = "factor"),
    STEP_NAME = structure(c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L,
    5L, 1L, 2L, 3L, 4L, 5L, 1L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L), .Label = c("C10",
    "R1", "R2", "R3", "R4"), class = "factor")), .Names = c("UUT_NAME",
"STATION_NUM", "START_DATE_TIME", "LOW_LIMIT", "DATA", "HIGH_LIMIT",
"UNITS", "STEP_NAME"), class = "data.frame", row.names = c("32",
"104", "105", "106", "107", "1005", "1077", "1078", "1079", "1080",
"1978", "2050", "2051", "2052", "2053", "2951", "3023", "3095",
"3096", "3097", "3098", "3996", "4068", "4069", "4070", "4071",
"4892", "4964", "4965", "4966", "4967", "5534", "5606", "5607",
"5608", "5609", "6507", "6579", "6580", "6581", "6582", "7430",
"7502", "7503", "7504", "7505", "8414", "8486", "8487", "8488",
"8489", "8918", "8990", "8991", "8992", "8993", "9426", "9498",
"9499", "9500", "9501", "10399", "10471", "10472", "10473", "10474",
"10903", "10975", "10976", "10977", "10978", "11876", "11948",
"11949", "11950", "11951", "12849", "12921", "12922", "12923",
"12924", "13445", "13517", "13518", "13519", "13520", "13748",
"13820", "13821", "13822", "13823", "14721", "14793", "14794",
"14795", "14796", "15694", "15766", "15767", "15768", "15769",
"16667", "16739", "16740", "16741", "16742", "17640", "17712",
"17713", "17714", "17715", "18144", "18216", "18217", "18218",
"18219", "18787", "18859", "18860", "18861", "18862", "19760",
"19832", "19833", "19834", "19835", "20264", "20336", "20337",
"20338", "20339", "21237", "21309", "21310", "21311", "21312",
"22210", "22282", "22283", "22284", "22285", "23183", "23255",
"23256", "23257", "23258", "24156", "24228", "24229", "24230",
"24231", "25128", "25200", "25201", "25202", "25203", "26101",
"26173", "26174", "26175", "26176", "26605", "26677", "26678",
"26679", "26680", "27578", "27650", "27651", "27652", "27653",
"28082", "28154", "28155", "28156", "28157", "29055", "29127",
"29128", "29129", "29130", "29695", "29767", "29768", "29769",
"29770", "30199", "30271", "30272", "30273", "30274", "31172",
"31244", "31245", "31246", "31247", "32145", "32217", "32218",
"32219", "32220", "33118", "33190", "33191", "33192", "33193",
"34091", "34163", "34164", "34165", "34166", "34687", "34759",
"34760", "34761", "34762", "35660", "35732", "35733", "35734",
"35735", "36633", "36705", "36706", "36707", "36708", "37606",
"37678", "37679", "37680", "37681", "38026", "38098", "38099",
"38100", "38101", "38665", "38737", "38738", "38739", "38740",
"39169", "39241", "39242", "39243", "39244", "40142", "40214",
"40215", "40216", "40217", "41115", "41187", "41188", "41189",
"41190", "42088", "42160", "42161", "42162", "42163", "43061",
"43133", "43134", "43135", "43136", "44034", "44106", "44107",
"44108", "44109", "44592", "44664", "44665", "44666", "44667",
"45054", "45126", "45127", "45128", "45129", "45475", "45547",
"45548", "45549", "45550", "46448", "46520", "46521", "46522",
"46523", "47421", "47493", "47494", "47495", "47496", "48394",
"48466", "48467", "48468", "48469", "48991", "49063", "49064",
"49065", "49066", "49964", "50036", "50037", "50038", "50039",
"50937", "51009", "51010", "51011", "51012", "51910", "51982",
"51983", "51984", "51985", "52414", "52486", "52487", "52488",
"52489", "53387", "53459", "53460", "53461", "53462", "54360",
"54432", "54433", "54434", "54435", "54865", "54937", "54938",
"54939", "54940", "55838", "55910", "55911", "55912", "55913",
"56811", "56883", "56884", "56885", "56886", "57784", "57856",
"57857", "57858", "57859", "58757", "58829", "58830", "58831",
"58832", "59730", "59802", "59803", "59804", "59805", "60703",
"60775", "60776", "60777", "60778", "61676", "61748", "61749",
"61750", "61751", "62394", "62466", "62467", "62468", "62469",
"62898", "62970", "62971", "62972", "62973", "63871", "63943",
"63944", "63945", "63946", "64844", "64916", "64917", "64918",
"64919", "65348", "65420", "65421", "65422", "65423", "66375",
"66447", "66448", "66449", "66450", "66656", "66728", "66729",
"66730", "66731", "67251", "67323", "67324", "67325", "67326",
"68220", "68292", "68293", "68294", "68295", "68864", "68936",
"68937", "68938", "68939"))
```

答:
This is kind of weird, I must admit. I think there is some unanticipated interaction between min and group_by, but I'm not entirely sure. It almost seems buggy. What's going on is that the last grouping variable is dropped. This actually makes sense for a lot of different situations, but not yours. We can hack our way around it, though:

```<code>table1 %>%
    group_by(STEP_NAME) %>%
    summarise(m = mean(DATA), s = sd(DATA), Ts = max(HIGH_LIMIT),
              Ts = max(HIGH_LIMIT), Ti = min(LOW_LIMIT)) %>%
    mutate(CpK1 = (m-Ti)/(3*s),
           CpK2 = (Ts-m)/(3*s)) %>%
    mutate(CpK = ifelse(CpK1 < CpK2, CpK1, CpK2)) %>%
    select(-CpK1, -CpK2)

# A tibble: 5 x 6
  STEP_NAME          m           s     Ts    Ti      CpK
     <fctr>      <dbl>       <dbl>  <dbl> <dbl>    <dbl>
1       C10 104.522294 1.282699532 112.00 88.00 1.943221
2        R1  90.335988 0.327022906  93.90 87.90 2.482994
3        R2   2.140924 0.004407826   2.22  2.08 4.607264
4        R3  30.058242 0.061715734  31.10 29.10 5.175568
5        R4  30.050151 0.065536919  31.10 29.10 4.832650
</code>```

Another method is to add another group_by call after the summarise call:

```<code>table1 %>%
    group_by(STEP_NAME) %>%
    summarise(m = mean(DATA), s = sd(DATA), Ts = max(HIGH_LIMIT),
              Ts = max(HIGH_LIMIT), Ti = min(LOW_LIMIT)) %>%
    group_by(STEP_NAME) %>%
    mutate(CpK = min((m-Ti)/(3*s), (Ts-m)/(3*s)))

# A tibble: 5 x 6
# Groups:   STEP_NAME [5]
  STEP_NAME          m           s     Ts    Ti      CpK
     <fctr>      <dbl>       <dbl>  <dbl> <dbl>    <dbl>
1       C10 104.522294 1.282699532 112.00 88.00 1.943221
2        R1  90.335988 0.327022906  93.90 87.90 2.482994
3        R2   2.140924 0.004407826   2.22  2.08 4.607264
4        R3  30.058242 0.061715734  31.10 29.10 5.175568
5        R4  30.050151 0.065536919  31.10 29.10 4.832650
</code>```

Body:
I want to add a calculated column to a data frame to find CpK on each series of STEP_NAME  (R1, R2 ...) with the DATA column as measures

Calcul for Cpk is :

m <- mean(table1$Data)
s <- sd(table1$Data)

Ts <- max(table1$HIGH_LIMIT)
Ti <- min(table1$LOW_LIMIT)

CpK <- min((m-Ti)/(3*s), (Ts-m)/(3*s))

I tried

library(dplyr)
table2 <- table1 %>%
group_by(STEP_NAME) %>%
summarise(m = mean(DATA), s = sd(DATA), Ts = max(High_Limit),
          Ts = max(High_Limit), Ti = min(LOW_LIMIT)) %>%
          mutate(CpK = min((m-Ti)/(3*s), (Ts-m)/(3*s)))

CpK values are always a constant and I guess the min function doesn't work with this format, any idea ? I also try to add the Cp column with Cp = (Ts-Ti)/6s and it works well

Here a dput() export of my data frame sample :

structure(list(UUT_NAME = structure(c(31L, 31L, 31L, 31L, 31L,
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 30L, 30L, 30L,
30L, 30L, 30L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L,
15L, 15L, 15L, 15L, 15L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L,
16L, 16L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 5L, 5L, 5L, 5L, 5L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L,
13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 14L,
14L, 14L, 14L, 14L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 24L,
24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 18L, 18L, 18L, 18L,
18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L,
18L, 18L, 18L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L, 17L,
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 8L, 8L, 8L, 8L, 8L, 20L, 20L, 20L, 20L, 20L, 4L, 4L,
4L, 4L, 4L, 23L, 23L, 23L, 23L, 23L, 20L, 20L, 20L, 20L, 20L,
23L, 23L, 23L, 23L, 23L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 23L, 23L, 23L, 23L, 23L, 21L, 21L, 21L,
21L, 21L, 9L, 9L, 9L, 9L, 9L, 29L, 29L, 29L, 29L, 29L, 29L, 29L,
29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L,
29L, 29L, 29L, 29L, 29L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L,
22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 11L,
11L, 11L, 11L, 11L, 28L, 28L, 28L, 28L, 28L, 28L, 28L, 28L, 28L,
28L, 28L, 28L, 28L, 28L, 28L, 32L, 32L, 32L, 32L, 32L, 32L, 32L,
32L, 32L, 32L, 25L, 25L, 25L, 25L, 25L, 32L, 32L, 32L, 32L, 32L,
27L, 27L, 27L, 27L, 27L, 26L, 26L, 26L, 26L, 26L, 19L, 19L, 19L,
19L, 19L, 1L, 1L, 1L, 1L, 1L, 19L, 19L, 19L, 19L, 19L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 19L, 19L,
19L, 19L, 19L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("CELOGIC.MA-0530", "CELOGIC.MA-0742",
"CELOGIC.MA-0747", "CELOGIC.MA-0817", "CELOGIC.MA-0887", "CELOGIC.MA-0906",
"CELOGIC.MA-100", "CELOGIC.MA-102", "CELOGIC.MA-1441", "CELOGIC.MA-1610",
"CELOGIC.MA-1611", "CELOGIC.MA-2161", "CELOGIC.MA-2189", "CELOGIC.MA-2316",
"CELOGIC.MA-2374", "CELOGIC.MA-2454", "CELOGIC.MA-2609", "CELOGIC.MA-2610",
"CELOGIC.MA-2616", "CELOGIC.MA-2641", "CELOGIC.MA-3029", "CELOGIC.MA-3044",
"CELOGIC.MA-3083", "CELOGIC.MA-3154", "CELOGIC.MA-3238", "CELOGIC.MA-3786",
"CELOGIC.MA-3826", "CELOGIC.MA-4066", "CELOGIC.MA-4305", "CELOGIC.MA-4329",
"CELOGIC.MA-6475", "CELOGIC.MA-9014"), class = "factor"), STATION_NUM = structure(c(1L,
1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c("00 00297", "00 00323",
"00 00362", "00 00366", "00 00399"), class = "factor"), START_DATE_TIME = structure(c(1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 5L,
5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 8L, 8L,
8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 11L,
11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 13L, 13L, 13L, 13L,
13L, 14L, 14L, 14L, 14L, 14L, 15L, 15L, 15L, 15L, 15L, 16L, 16L,
16L, 16L, 16L, 17L, 17L, 17L, 17L, 17L, 18L, 18L, 18L, 18L, 18L,
19L, 19L, 19L, 19L, 19L, 20L, 20L, 20L, 20L, 20L, 21L, 21L, 21L,
21L, 21L, 22L, 22L, 22L, 22L, 22L, 23L, 23L, 23L, 23L, 23L, 24L,
24L, 24L, 24L, 24L, 25L, 25L, 25L, 25L, 25L, 28L, 28L, 28L, 28L,
28L, 26L, 26L, 26L, 26L, 26L, 27L, 27L, 27L, 27L, 27L, 29L, 29L,
29L, 29L, 29L, 30L, 30L, 30L, 30L, 30L, 31L, 31L, 31L, 31L, 31L,
32L, 32L, 32L, 32L, 32L, 33L, 33L, 33L, 33L, 33L, 34L, 34L, 34L,
34L, 34L, 35L, 35L, 35L, 35L, 35L, 36L, 36L, 36L, 36L, 36L, 39L,
39L, 39L, 39L, 39L, 37L, 37L, 37L, 37L, 37L, 38L, 38L, 38L, 38L,
38L, 40L, 40L, 40L, 40L, 40L, 41L, 41L, 41L, 41L, 41L, 42L, 42L,
42L, 42L, 42L, 43L, 43L, 43L, 43L, 43L, 44L, 44L, 44L, 44L, 44L,
45L, 45L, 45L, 45L, 45L, 46L, 46L, 46L, 46L, 46L, 47L, 47L, 47L,
47L, 47L, 48L, 48L, 48L, 48L, 48L, 49L, 49L, 49L, 49L, 49L, 50L,
50L, 50L, 50L, 50L, 51L, 51L, 51L, 51L, 51L, 52L, 52L, 52L, 52L,
52L, 53L, 53L, 53L, 53L, 53L, 54L, 54L, 54L, 54L, 54L, 55L, 55L,
55L, 55L, 55L, 56L, 56L, 56L, 56L, 56L, 57L, 57L, 57L, 57L, 57L,
58L, 58L, 58L, 58L, 58L, 59L, 59L, 59L, 59L, 59L, 60L, 60L, 60L,
60L, 60L, 61L, 61L, 61L, 61L, 61L, 62L, 62L, 62L, 62L, 62L, 63L,
63L, 63L, 63L, 63L, 64L, 64L, 64L, 64L, 64L, 65L, 65L, 65L, 65L,
65L, 66L, 66L, 66L, 66L, 66L, 67L, 67L, 67L, 67L, 67L, 68L, 68L,
68L, 68L, 68L, 69L, 69L, 69L, 69L, 69L, 70L, 70L, 70L, 70L, 70L,
71L, 71L, 71L, 71L, 71L, 72L, 72L, 72L, 72L, 72L, 73L, 73L, 73L,
73L, 73L, 74L, 74L, 74L, 74L, 74L, 75L, 75L, 75L, 75L, 75L, 76L,
76L, 76L, 76L, 76L, 77L, 77L, 77L, 77L, 77L, 78L, 78L, 78L, 78L,
78L, 79L, 79L, 79L, 79L, 79L, 80L, 80L, 80L, 80L, 80L, 81L, 81L,
81L, 81L, 81L, 82L, 82L, 82L, 82L, 82L, 83L, 83L, 83L, 83L, 83L,
84L, 84L, 84L, 84L, 84L, 85L, 85L, 85L, 85L, 85L, 86L, 86L, 86L,
86L, 86L), .Label = c("2014-01-27 16:30:38", "2014-05-13 13:58:38",
"2014-05-13 14:09:17", "2014-05-13 14:30:51", "2014-05-13 14:31:38",
"2014-06-19 14:30:36", "2014-06-19 14:39:36", "2014-06-19 14:42:13",
"2014-09-05 09:26:10", "2014-09-05 09:35:27", "2015-03-06 07:50:56",
"2015-03-06 07:59:56", "2015-03-09 13:52:21", "2015-03-09 14:36:44",
"2015-03-09 14:50:37", "2015-03-17 14:19:37", "2015-10-30 14:47:55",
"2015-10-30 14:49:22", "2015-10-30 14:49:49", "2015-10-30 15:03:52",
"2015-11-02 14:52:56", "2015-11-02 15:30:48", "2015-11-02 15:52:41",
"2015-11-02 16:12:23", "2015-11-03 09:20:08", "2016-03-09 14:14:01",
"2016-03-09 16:02:18", "2016-03-09 16:12:04", "2016-03-10 09:07:24",
"2016-06-02 09:45:43", "2016-06-02 10:35:59", "2016-07-22 15:43:27",
"2016-07-25 08:52:49", "2016-07-25 09:48:51", "2016-07-25 10:31:02",
"2016-07-25 11:22:45", "2016-07-25 13:13:20", "2016-07-25 13:16:02",
"2016-07-25 13:25:13", "2016-07-25 14:35:31", "2016-07-26 08:50:27",
"2016-07-26 09:40:45", "2016-11-08 09:04:39", "2016-11-08 09:57:37",
"2016-11-08 10:35:04", "2016-11-08 10:57:24", "2016-11-08 11:23:43",
"2016-11-08 11:38:34", "2016-11-08 11:50:57", "2016-11-08 11:52:16",
"2016-11-08 14:38:58", "2016-12-05 11:08:50", "2016-12-05 13:54:25",
"2017-01-16 09:49:57", "2017-01-16 10:12:53", "2017-01-17 08:34:57",
"2017-01-17 08:52:37", "2017-01-17 14:08:12", "2017-02-01 10:52:23",
"2017-02-01 11:07:24", "2017-02-17 14:32:11", "2017-02-17 14:36:12",
"2017-03-07 15:58:40", "2017-03-27 11:40:27", "2017-03-28 09:42:13",
"2017-03-28 09:48:34", "2017-06-13 11:34:39", "2017-06-13 14:13:07",
"2017-06-13 14:35:58", "2017-06-13 15:11:44", "2017-07-24 14:51:53",
"2017-09-19 09:44:11", "2017-09-19 10:04:29", "2017-09-19 10:28:29",
"2017-09-19 11:02:42", "2017-09-19 13:56:57", "2017-09-19 14:03:18",
"2017-09-19 14:04:32", "2017-09-19 14:13:17", "2017-09-28 14:22:38",
"2017-09-28 14:43:03", "2017-09-28 15:29:59", "2017-09-28 15:31:28",
"2017-09-28 15:36:36", "2017-09-28 15:49:51", "2017-09-28 16:10:26"
), class = "factor"), LOW_LIMIT = c(88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 88,
87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9,
2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08,
29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1,
29.1, 88, 87.9, 2.08, 29.1, 29.1, 88, 87.9, 2.08, 29.1, 29.1,
88, 87.9, 2.08, 29.1, 29.1), DATA = c(103.83455, 89.64711, 2.13345,
30.057545, 30.086464, 104.37667, 89.788269, 2.13431, 30.045176,
30.049561, 104.7235, 89.813126, 2.134059, 30.048182, 30.056608,
104.03241, 103.96976, 89.63073, 2.141897, 30.035461, 30.104946,
104.51376, 90.733009, 2.141215, 30.147131, 30.113092, 107.34245,
90.934967, 2.140769, 30.136806, 30.114983, 105.98895, 90.628517,
2.141326, 30.142355, 30.122778, 103.49479, 90.358688, 2.141122,
30.058239, 30.06591, 103.60199, 90.354286, 2.142168, 30.063662,
30.070904, 102.51865, 90.974564, 2.148871, 29.983458, 30.128607,
103.016, 90.883461, 2.148184, 29.975309, 30.137098, 102.54838,
89.871902, 2.142678, 29.947052, 30.094099, 102.50674, 89.974739,
2.142947, 29.953632, 30.089359, 102.88899, 90.077881, 2.142447,
29.951406, 30.092203, 105.72658, 89.542099, 2.143392, 29.941921,
29.980062, 104.56109, 90.826813, 2.13772, 29.979958, 30.028364,
104.10088, 90.849869, 2.136499, 29.981756, 30.028885, 105.10763,
90.826553, 2.137116, 29.984587, 30.029911, 104.18301, 90.603035,
2.136766, 29.987928, 30.042906, 103.85734, 90.941826, 2.135956,
29.919226, 30.054958, 106.41589, 90.797607, 2.134154, 30.109236,
30.025709, 106.77251, 90.557838, 2.132611, 30.115213, 30.049799,
104.15064, 90.598541, 2.136247, 30.099293, 29.956236, 104.50943,
90.196915, 2.136503, 30.089535, 29.956837, 104.67191, 90.35878,
2.145689, 30.158304, 30.004744, 103.27634, 90.543076, 2.144124,
30.138008, 29.987755, 103.43541, 90.312469, 2.145076, 30.144836,
29.99951, 103.84418, 90.39769, 2.145807, 30.145554, 29.995651,
103.39602, 90.332397, 2.146439, 30.082825, 30.07023, 103.07425,
90.374924, 2.145505, 30.075659, 30.067387, 102.41218, 89.970772,
2.135011, 30.171347, 30.038151, 102.64326, 90.041145, 2.13542,
30.17922, 30.034796, 102.55943, 89.94989, 2.136524, 30.172457,
30.039785, 106.16189, 90.254478, 2.143642, 30.03858, 30.034452,
105.13081, 90.153961, 2.143321, 30.020109, 30.049246, 106.46228,
90.300667, 2.14456, 30.033245, 30.04554, 105.26501, 90.428741,
2.144274, 30.013161, 30.02133, 105.58955, 90.363289, 2.1433,
30.015482, 30.013422, 105.24362, 90.616943, 2.144161, 30.019264,
30.023048, 105.71942, 90.295998, 2.144891, 30.040255, 30.038618,
102.86487, 90.426964, 2.135716, 30.147213, 30.024424, 106.71793,
90.416763, 2.142324, 29.969154, 30.00629, 103.83101, 90.53817,
2.140727, 30.008778, 30.064625, 103.05832, 90.361076, 2.13503,
30.027338, 29.993675, 106.10006, 90.594826, 2.142059, 29.958195,
29.987673, 104.86755, 90.49144, 2.135422, 30.024847, 29.990158,
104.23051, 90.12674, 2.141112, 30.018059, 30.079882, 104.76202,
90.318901, 2.135574, 30.027168, 29.994877, 104.43105, 90.119614,
2.140357, 30.023642, 30.085588, 104.82088, 90.318939, 2.134686,
30.028111, 29.993246, 104.47222, 90.162384, 2.140747, 30.012562,
30.121384, 105.17671, 90.8339, 2.137395, 30.059807, 30.14035,
103.39295, 90.590065, 2.145206, 30.091719, 29.96744, 104.08862,
89.958221, 2.145849, 30.108145, 29.999678, 103.35049, 90.352165,
2.145873, 30.091724, 29.978664, 103.6749, 90.710175, 2.145678,
30.0951, 29.98218, 104.70875, 90.30056, 2.144813, 30.094131,
29.991529, 105.17446, 90.537613, 2.142141, 30.003885, 29.930983,
104.83267, 90.660332, 2.141441, 30.012733, 29.938503, 104.96903,
90.514137, 2.142737, 29.996761, 29.921858, 105.91333, 90.392693,
2.142066, 29.996334, 29.932619, 102.83725, 90.443596, 2.150893,
30.078348, 30.150576, 104.02214, 89.949432, 2.139457, 30.164099,
30.147629, 103.8532, 90.113785, 2.138755, 30.176195, 30.155697,
103.58204, 89.905396, 2.139221, 30.16864, 30.15527, 107.18325,
90.292488, 2.143229, 30.068497, 30.207439, 105.38244, 90.118889,
2.143076, 30.074533, 30.210369, 103.70168, 90.110695, 2.135857,
30.069971, 29.974039, 106.00477, 90.324944, 2.143227, 30.061428,
30.197681, 104.40753, 90.338608, 2.136585, 30.070391, 30.036024,
104.39215, 89.585129, 2.139386, 30.088642, 29.965807, 103.16625,
90.1008, 2.147998, 30.065079, 30.106453, 104.23954, 90.078255,
2.144455, 30.073795, 30.09936, 102.45847, 90.38028, 2.14762,
30.050428, 30.095728, 104.51608, 90.032143, 2.145565, 30.091145,
30.100916, 104.83134, 90.170525, 2.14517, 30.088293, 30.095644,
104.60923, 89.934662, 2.145767, 30.079401, 30.102394, 103.24618,
90.006889, 2.148073, 30.064478, 30.1042, 105.26569, 90.563705,
2.138664, 30.020033, 29.971384, 106.9408, 90.529907, 2.135091,
30.091959, 30.089626, 107.18589, 90.570724, 2.134622, 30.084194,
30.090492, 107.58999, 90.535423, 2.135308, 30.085833, 30.089886,
106.36217, 90.431122, 2.135268, 30.083925, 30.091526, 105.21892,
90.754059, 2.138996, 30.021669, 29.973015, 104.85383, 90.454239,
2.139157, 30.031807, 29.982101), HIGH_LIMIT = c(112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112,
93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9,
2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22,
31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1,
31.1, 112, 93.9, 2.22, 31.1, 31.1, 112, 93.9, 2.22, 31.1, 31.1,
112, 93.9, 2.22, 31.1, 31.1), UNITS = structure(c(2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 2L, 1L, 1L, 1L, 1L), .Label = c("KO", "pF"), class = "factor"),
    STEP_NAME = structure(c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L,
    5L, 1L, 2L, 3L, 4L, 5L, 1L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L,
    4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L), .Label = c("C10",
    "R1", "R2", "R3", "R4"), class = "factor")), .Names = c("UUT_NAME",
"STATION_NUM", "START_DATE_TIME", "LOW_LIMIT", "DATA", "HIGH_LIMIT",
"UNITS", "STEP_NAME"), class = "data.frame", row.names = c("32",
"104", "105", "106", "107", "1005", "1077", "1078", "1079", "1080",
"1978", "2050", "2051", "2052", "2053", "2951", "3023", "3095",
"3096", "3097", "3098", "3996", "4068", "4069", "4070", "4071",
"4892", "4964", "4965", "4966", "4967", "5534", "5606", "5607",
"5608", "5609", "6507", "6579", "6580", "6581", "6582", "7430",
"7502", "7503", "7504", "7505", "8414", "8486", "8487", "8488",
"8489", "8918", "8990", "8991", "8992", "8993", "9426", "9498",
"9499", "9500", "9501", "10399", "10471", "10472", "10473", "10474",
"10903", "10975", "10976", "10977", "10978", "11876", "11948",
"11949", "11950", "11951", "12849", "12921", "12922", "12923",
"12924", "13445", "13517", "13518", "13519", "13520", "13748",
"13820", "13821", "13822", "13823", "14721", "14793", "14794",
"14795", "14796", "15694", "15766", "15767", "15768", "15769",
"16667", "16739", "16740", "16741", "16742", "17640", "17712",
"17713", "17714", "17715", "18144", "18216", "18217", "18218",
"18219", "18787", "18859", "18860", "18861", "18862", "19760",
"19832", "19833", "19834", "19835", "20264", "20336", "20337",
"20338", "20339", "21237", "21309", "21310", "21311", "21312",
"22210", "22282", "22283", "22284", "22285", "23183", "23255",
"23256", "23257", "23258", "24156", "24228", "24229", "24230",
"24231", "25128", "25200", "25201", "25202", "25203", "26101",
"26173", "26174", "26175", "26176", "26605", "26677", "26678",
"26679", "26680", "27578", "27650", "27651", "27652", "27653",
"28082", "28154", "28155", "28156", "28157", "29055", "29127",
"29128", "29129", "29130", "29695", "29767", "29768", "29769",
"29770", "30199", "30271", "30272", "30273", "30274", "31172",
"31244", "31245", "31246", "31247", "32145", "32217", "32218",
"32219", "32220", "33118", "33190", "33191", "33192", "33193",
"34091", "34163", "34164", "34165", "34166", "34687", "34759",
"34760", "34761", "34762", "35660", "35732", "35733", "35734",
"35735", "36633", "36705", "36706", "36707", "36708", "37606",
"37678", "37679", "37680", "37681", "38026", "38098", "38099",
"38100", "38101", "38665", "38737", "38738", "38739", "38740",
"39169", "39241", "39242", "39243", "39244", "40142", "40214",
"40215", "40216", "40217", "41115", "41187", "41188", "41189",
"41190", "42088", "42160", "42161", "42162", "42163", "43061",
"43133", "43134", "43135", "43136", "44034", "44106", "44107",
"44108", "44109", "44592", "44664", "44665", "44666", "44667",
"45054", "45126", "45127", "45128", "45129", "45475", "45547",
"45548", "45549", "45550", "46448", "46520", "46521", "46522",
"46523", "47421", "47493", "47494", "47495", "47496", "48394",
"48466", "48467", "48468", "48469", "48991", "49063", "49064",
"49065", "49066", "49964", "50036", "50037", "50038", "50039",
"50937", "51009", "51010", "51011", "51012", "51910", "51982",
"51983", "51984", "51985", "52414", "52486", "52487", "52488",
"52489", "53387", "53459", "53460", "53461", "53462", "54360",
"54432", "54433", "54434", "54435", "54865", "54937", "54938",
"54939", "54940", "55838", "55910", "55911", "55912", "55913",
"56811", "56883", "56884", "56885", "56886", "57784", "57856",
"57857", "57858", "57859", "58757", "58829", "58830", "58831",
"58832", "59730", "59802", "59803", "59804", "59805", "60703",
"60775", "60776", "60777", "60778", "61676", "61748", "61749",
"61750", "61751", "62394", "62466", "62467", "62468", "62469",
"62898", "62970", "62971", "62972", "62973", "63871", "63943",
"63944", "63945", "63946", "64844", "64916", "64917", "64918",
"64919", "65348", "65420", "65421", "65422", "65423", "66375",
"66447", "66448", "66449", "66450", "66656", "66728", "66729",
"66730", "66731", "67251", "67323", "67324", "67325", "67326",
"68220", "68292", "68293", "68294", "68295", "68864", "68936",
"68937", "68938", "68939"))

Body:
This is kind of weird, I must admit. I think there is some unanticipated interaction between min and group_by, but I'm not entirely sure. It almost seems buggy. What's going on is that the last grouping variable is dropped. This actually makes sense for a lot of different situations, but not yours. We can hack our way around it, though:

table1 %>%
    group_by(STEP_NAME) %>%
    summarise(m = mean(DATA), s = sd(DATA), Ts = max(HIGH_LIMIT),
              Ts = max(HIGH_LIMIT), Ti = min(LOW_LIMIT)) %>%
    mutate(CpK1 = (m-Ti)/(3*s),
           CpK2 = (Ts-m)/(3*s)) %>%
    mutate(CpK = ifelse(CpK1 < CpK2, CpK1, CpK2)) %>%
    select(-CpK1, -CpK2)

# A tibble: 5 x 6
  STEP_NAME          m           s     Ts    Ti      CpK
     <fctr>      <dbl>       <dbl>  <dbl> <dbl>    <dbl>
1       C10 104.522294 1.282699532 112.00 88.00 1.943221
2        R1  90.335988 0.327022906  93.90 87.90 2.482994
3        R2   2.140924 0.004407826   2.22  2.08 4.607264
4        R3  30.058242 0.061715734  31.10 29.10 5.175568
5        R4  30.050151 0.065536919  31.10 29.10 4.832650

Another method is to add another group_by call after the summarise call:

table1 %>%
    group_by(STEP_NAME) %>%
    summarise(m = mean(DATA), s = sd(DATA), Ts = max(HIGH_LIMIT),
              Ts = max(HIGH_LIMIT), Ti = min(LOW_LIMIT)) %>%
    group_by(STEP_NAME) %>%
    mutate(CpK = min((m-Ti)/(3*s), (Ts-m)/(3*s)))

# A tibble: 5 x 6
# Groups:   STEP_NAME [5]
  STEP_NAME          m           s     Ts    Ti      CpK
     <fctr>      <dbl>       <dbl>  <dbl> <dbl>    <dbl>
1       C10 104.522294 1.282699532 112.00 88.00 1.943221
2        R1  90.335988 0.327022906  93.90 87.90 2.482994
3        R2   2.140924 0.004407826   2.22  2.08 4.607264
4        R3  30.058242 0.061715734  31.10 29.10 5.175568
5        R4  30.050151 0.065536919  31.10 29.10 4.832650


问:
Angular AOT using isDevMode giving error
When using isDevMode() working fine for JIT build, while failed for AOT stating

```<code>Error: Error encountered resolving symbol values statically. Calling function 'isDevMode', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function
</code>```

trying to create export function like this but no luck

```<code>export function isDevModeEnabled() {
   return isDevMode();
}
</code>```

答:
So I also encountered this error, and raised it as an issue here. The official response from the Angular 2 development team is that this is not a bug:

I believe this is an intended behaviour. The solution is to move isDevMode() out of the annotation. (By defining to a variable)

The official solution is:

[...] You will need to set the return value to a variable, and use the variable rather than calling the function when wiring up the NgModule.

Body:
When using isDevMode() working fine for JIT build, while failed for AOT stating

Error: Error encountered resolving symbol values statically. Calling function 'isDevMode', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function

trying to create export function like this but no luck

export function isDevModeEnabled() {
   return isDevMode();
}


问:
Pickerview lag when updating labels
I'm using a picker view, and want to update stuff on the screen relating to the item that is currently selected.

Here's the code from the program:

```<code>   func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    TeamLabel.text = teams [row]
    attackField.text = "\(attacks [row])"
    defenseField.text = "\(defenses [row])"
    currentRow = row
    return teams [row]
}
</code>```

This puts the team name, attack and defense values on the screen.

However, when scrolling the picker, I get the wrong result a lot. The text output doesn't match what's currently in the picker. Any idea how I can fix this?

Thanks.

答:
You are using the wrong delegate method to update your text fields (or labels).

Update titleForRow to just:

```<code>func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return teams[row]
}
</code>```

Then implement the didSelectRow delegate method to update your fields:

```<code>func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    TeamLabel.text = teams[row]
    attackField.text = "\(attacks[row])"
    defenseField.text = "\(defenses[row])"
}
</code>```

Title: Pickerview lag when updating labels

Body:
I'm using a picker view, and want to update stuff on the screen relating to the item that is currently selected.

Here's the code from the program:

   func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    TeamLabel.text = teams [row]
    attackField.text = "\(attacks [row])"
    defenseField.text = "\(defenses [row])"
    currentRow = row
    return teams [row]
}

This puts the team name, attack and defense values on the screen.

However, when scrolling the picker, I get the wrong result a lot. The text output doesn't match what's currently in the picker. Any idea how I can fix this?

Thanks.

Body:
You are using the wrong delegate method to update your text fields (or labels).

Update titleForRow to just:

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return teams[row]
}

Then implement the didSelectRow delegate method to update your fields:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    TeamLabel.text = teams[row]
    attackField.text = "\(attacks[row])"
    defenseField.text = "\(defenses[row])"
}


问:
Decrease picturebox width from left to right making HP bar for RPG game
i want to create 2 HP bar(left/right) using visual basic, i used

```<code>hp1.width -=10
</code>```

to decrease left sided hp like this
but when i used it to the right sided it becomes like this
i used

```<code>hp2.Left += 10
hp2.Width -= 10
</code>```

for the right sided
how to make the right sided hp bar decreased from left to right?

答:
```<code>    dim hp as integer = 0
    hp += 10
    '189 for width, 22 for height
    Dim rect As Rectangle = New Rectangle(hp, 0, 189, 22)
    Dim bit As Bitmap = New Bitmap(My.Resources.HPBar_Right, 189, 22)
    Dim cropBitmap = New Bitmap(189, 22)
    Dim g As Graphics = Graphics.FromImage(cropBitmap)
    g.DrawImage(bit, 0, 0, rect, GraphicsUnit.Pixel)
    hp2.Image = cropBitmap
    hp2.Left += 10
    hp2.Refresh()
</code>```

Body:
i want to create 2 HP bar(left/right) using visual basic, i used

hp1.width -=10

to decrease left sided hp like this
but when i used it to the right sided it becomes like this
i used

hp2.Left += 10
hp2.Width -= 10

for the right sided
how to make the right sided hp bar decreased from left to right?


问:
Where do I put viewport meta tag in jsfiddle
In jsFiddle I need to put viewport metatag in the head element. But since jsFiddle already includes html, head and body tags, it shows a warning: "No need for the HTML tag, it's already in the output."

Is there a way to put viewport metatag in the head?

```<code><meta name="viewport" content="width=device-width, initial-scale=1" />
</code>```

答:
As previously stated by others (but hidden below the fold in the comments) none of the answers will work.

The jsfiddle embed places your code inside of an iframe.  The viewport meta tag is only applied if it's on the outermost page.  See this bug I filed with jsfiddle for examples: https://github.com/jsfiddle/jsfiddle-issues/issues/1094.

There is really only one solution, to host the files yourself.  And if you have a place to publish an html file, then you don't really need the fiddle anymore.  If you really want to bother, you simply need to add the header to your own page, then add the jsfiddle embed to that.

However, if you just want to see what it will render like on mobile on your own desktop without publishing the file yourself you can do the following:

copy the embedded result url into a chrome browser.

open the developer tools.

in the source tab in the dev tools, edit the  tag "... as HTML...".

insert the meta tag:
<meta name="viewport" content="width=device-width, initial-scale=1" />

click outside of edit window to apply the change.

toggle the device toolbar and select the mobile device of your choice.

Body:
In jsFiddle I need to put viewport metatag in the head element. But since jsFiddle already includes html, head and body tags, it shows a warning: "No need for the HTML tag, it's already in the output."

Is there a way to put viewport metatag in the head?

<meta name="viewport" content="width=device-width, initial-scale=1" />


问:
XCode library search path settings for static libraries (libssh2)
I'm trying to use libssh2 using pre-build static libraries. I'm following instructions on this page:

http://code.google.com/p/ios-static-libraries/

This site explains I should configure my build settings as such:

HEADER_SEARCH_PATHS[sdk=iphoneos4.2][arch=*] = $(inherited) "/path/to/iPhoneOS-4.2/include"
HEADER_SEARCH_PATHS[sdk=iphonesimulator4.2][arch=*] = $(inherited) "/path/to/iPhoneSimulator-4.2/include"
LIBRARY_SEARCH_PATHS[sdk=iphoneos4.2][arch=*] = $(inherited) "/path/to/iPhoneOS-4.2/lib"
LIBRARY_SEARCH_PATHS[sdk=iphonesimulator4.2][arch=*] = $(inherited) "/path/to/iPhoneSimulator-4.2/lib"
OTHER_LDFLAGS = -Wl,-search_paths_first -lz -lcrypto -liconv -lssl -lsasl2 -letpan -lgcrypt -lgpg-error -lssh2 -lcurl

Where in XCode can I set these options? Do I have to edit a file manually? Or do I maybe need to use the XCode user interface to set these options?

答:
Go to Project->Edit Project Settings to open the build settings window.  Select the build tab.

In the build settings window, select the setting you want to modify (like "Library search paths").  Then click the gear in the lower left, and select "Add Build Setting Condition."  Then you can add a value that applies only to iOS Simulator builds, and a second build setting condition to apply only to device builds.

ContentLicense: CC BY-SA 2.5