【发布时间】:2019-10-15 02:10:30
【问题描述】:
我想将化学公式转换为一个数据框,其中包含 1) 矿物名称、2) 化学公式和 3) 从公式中提取的每个元素的一组列。我得到了前两列,我可以使用 CHNOSZ::makeup() 从每个公式中提取元素的数量。但是,我不熟悉使用列表,也不知道如何将列表 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
这是不对的。
【问题讨论】:
标签: r tidyverse nested-lists