Работа со списками, которые содержат переменное количество фреймов данных - PullRequest
0 голосов
/ 05 апреля 2019

Я новичок в программировании на 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» этого датчика. Так что я могу работать только с этими данными.

Этот подход хорош? Какое решение вы рекомендуете? Вы рекомендуете другое решение?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...