Я хотел бы преобразовать химические формулы во фрейм данных, содержащий столбцы для 1) названия минерала, 2) химической формулы и 3) набора столбцов для каждого элемента, извлеченного из формулы. Мне даны первые два столбца, и я могу извлечь количество элементов из каждой формулы, используя CHNOSZ :: make (). Однако я не знаком с работой со списками и не уверен, как выполнить rbind () списков обратно во фрейм данных, который содержит все, что я ищу (т.е. см. 1-3 выше).
Вотчто я имею до сих пор - благодарен за любую помощь (включая ссылку на хороший учебник о том, как преобразовать данные из вложенных списков в рамки данных).
library(tidyverse)
library(CHNOSZ)
formulas <- structure(list(Mineral = c("Abelsonite", "Abernathyite", "Abhurite",
"Abswurmbachite", "Acanthite", "Acetamide"), Composition = c("C31H32N4Ni",
"K(UO2)(AsO4)4(H2O)", "Sn3O(OH)2Cl2", "CuMn6(SiO4)O8", "Ag2S",
"CH3CONH2")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-6L))
test <- formulas %>%
select(Composition) %>%
map(CHNOSZ::makeup) %>%
flatten
test2 <- do.call(rbind,test)
> test2
As H K O U
[1,] 31 32 4 1 31
[2,] 4 2 1 19 1
[3,] 2 2 3 3 2
[4,] 1 6 12 1 1
[5,] 2 1 2 1 2
[6,] 2 5 1 1 2
, что неправильно.