<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_statistics(ds, methods=None, features=None):
 """Compute statistics for an RT-DC dataset Parameters ds: dclab.rtdc_dataset.RTDCBase The dataset for which to compute the statistics. methods: list of str or None The methods wih which to compute the statistics. The list of available methods is given with `dclab.statistics.Statistics.available_methods.keys()` If set to `None`, statistics for all methods are computed. features: list of str Feature name identifiers are defined in `dclab.definitions.scalar_feature_names`. If set to `None`, statistics for all axes are computed. Returns ------- header: list of str The header (feature + method names) of the computed statistics. values: list of float The computed statistics. """

    if methods is None:
        cls = list(Statistics.available_methods.keys())
        # sort the features in a usable way
        avm = Statistics.available_methods
        me1 = [m for m in cls if not avm[m].req_feature]
        me2 = [m for m in cls if avm[m].req_feature]
        methods = me1 + me2

    if features is None:
        features = dfn.scalar_feature_names
    else:
        features = [a.lower() for a in features]

    header = []
    values = []

    # To make sure that all methods are computed for each feature in a block,
    # we loop over all features. It would be easier to loop over the methods,
    # but the resulting statistics would not be human-friendly.
    for ft in features:
        for mt in methods:
            meth = Statistics.available_methods[mt]
            if meth.req_feature:
                if ft in ds:
                    values.append(meth(ds=ds, feature=ft))
                else:
                    values.append(np.nan)
                header.append(" ".join([mt, dfn.feature_name2label[ft]]))
            else:
                # Prevent multiple entries of this method.
                if not header.count(mt):
                    values.append(meth(ds=ds))
                    header.append(mt)

    return header, values