У меня есть один большой длинный фрейм данных, где каждая химическая составляющая (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