Я новичок в программировании на R и ищу предложения для следующей проблемы.
У меня есть список, который содержит переменное количество фреймов данных, для контекстуализации, скажем, у нас есть «n» датчиков, и все данные содержатся в списке, который содержит «n» фреймов данных, где каждый фрейм данных содержит 10 переменных которые доставляют эти датчики.
Прежде всего, у меня есть данные в фрейме данных со следующей структурой:
head(rawData, 3)
EmailUsuario Fecha Hcho Humidity Latitude Longitude NombreUsuario Pm25 SensorName Temperature
1 null Fri Feb 01 2019 10:40:51 GMT-0300 (CLST) null null -34.42584 -72.03271 null 40 C08 null
2 null Fri Feb 01 2019 10:40:56 GMT-0300 (CLST) null null -34.42584 -72.03271 null 35 C08 null
3 null Fri Feb 01 2019 10:41:01 GMT-0300 (CLST) null null -34.42642 -72.03216 null 35 C08 null
В этом фрейме данных обнаружены все датчики, в столбце SensorName наблюдается только один, "C08", но в этом столбце есть переменное количество датчиков.
Следующее, что я делаю, это создаю список, в котором все кадры данных содержатся, но разделены датчиком.
n <- levels(rawData$SensorName) # sensor names vectors
s <- split(x = rawData, f = rawData$SensorName) # List of DFs per sensor
Если я посмотрю на второй элемент в списке "s", я получу следующий фрейм данных:
head(s[[2]], 3)
EmailUsuario Fecha Hcho Humidity Latitude Longitude NombreUsuario Pm25 SensorName Temperature
560 null Wed Feb 06 2019 14:49:17 GMT+0000 (GMT) null null -70.6667 -33.45 null 12 C17 null
561 null Wed Feb 06 2019 14:49:22 GMT+0000 (GMT) null null -70.6667 -33.45 null 12 C17 null
562 null Wed Feb 06 2019 14:49:27 GMT+0000 (GMT) null null -70.6667 -33.45 null 9 C17 null
Вы можете видеть, что он соответствует датчику "C17".
Теперь мне нужно, например, создать новый фрейм данных, но только с некоторыми переменными (столбцами) всех фреймов данных, содержащихся в списке «s». В этом случае я хочу создать фрейм данных, в котором имена столбцов совпадают с именем датчика, а значения столбца равны значению столбца «Pm25» этого датчика. Так что я могу работать только с этими данными.
Этот подход хорош? Какое решение вы рекомендуете? Вы рекомендуете другое решение?
Спасибо