Преобразование длинных данных в широкий. Используя циклы, применяйте семейство, dcast или изменяйте форму для больших наборов данных с метаданными - PullRequest
0 голосов
/ 05 января 2019

У меня есть один большой длинный фрейм данных, где каждая химическая составляющая (20+) указана в одном столбце «Аналитик», а соответствующие числовые значения - в столбце «Результаты». Во фрейме данных также есть метаданные, такие как идентификатор образца, год, описание сайта и т. Д. Я хочу преобразовать это в широкий фрейм данных, где все составляющие в столбце «Аналитик» становятся отдельными столбцами, а соответствующие числовые значения перечислены ниже. Некоторые станции (обозначенные как StationID) имеют данные о нескольких аналитах за несколько лет. Как я могу преобразовать это в широкую базу данных и сохранить мою структуру данных?

Я пробовал dcast, меняю форму, я просто не мог заставить их работать. Наибольший успех у меня был в поднаборах аналитов и объединении всех подмножеств файлов с помощью «StationID» и «Year».

Подмножество и объединение довольно повторяющееся, 40+ аналитов в подмножество и фреймы данных для объединения. Я также не мог понять, как получить цикл и применить семейство, чтобы автоматизировать это. Какой самый быстрый способ?

#my dataframe looks like this
view(Chemistry)
StationID  Date AnalyteName Results  SiteDesc
LA102      2010  Nitrate     0.1     Confined
LA102      2011  Nitrate     0.3     Confined
LA103      2010  Cadmium     0.9     Open
V143       2010  Phosphate   1.51    Confined
V144       2011  Zinc        1.82    Open
LA103      2010  Nitrate     1.42    Open

#I've tried this
chem1 <- Chemistry[Chemistry$AnalyteName=="Nitrate",]
chem2 <- Chemistry[Chemistry$AnalyteName=="Cadmium",]

colnames(chem1) <- c("StationID", "Date", "AnalyteName", "Nitrate", 
"SiteDesc")
colnames(chem2) <- c("StationID", "Date", "AnalyteName", "Cadmium", 
"SiteDesc")


ChemJoin1 <- join(chem1, chem2, by = c("StationID", "Date"), type = "full")

#I want this: 
view(Chemistry)
StationID  Date  Nitrate Cadmium Phosphate Zinc SiteDec
LA102      2010  0.1                            Confined
LA102      2011  0.3                            Confined
LA103      2010  1.42      0.9                  Open
V143       2010                   1.51          Confined
V144       2011                            1.82 Open
...