<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_data(self, *args, **kwargs):
 """ Collects positional and keyword arguments into `data` and applies units. :return: data """

        # get positional argument names from parameters and apply them to args
        # update data with additional kwargs
        argpos = {
            v['extras']['argpos']: k for k, v in self.parameters.iteritems()
            if 'argpos' in v['extras']
        }
        data = dict(
            {argpos[n]: a for n, a in enumerate(args)}, **kwargs
        )
        return self.apply_units_to_cache(data)