日期 | 树 | 化合物 | 化合物_mg | %毫克 |
---|---|---|---|---|
13.1 | a | C21 | 5 | |
13.1 | b | C21 | 4 | x |
13.1 | c | C21 | 9 | |
20.2 | a | C21 | 6 | |
20.2 | b | C21 | 5 | x |
20.2 | c | C21 | 10 | |
13.1 | a | C23 | 6 | |
13.1 | b | C23 | 6 | x |
13.1 | c | C23 | 10 | |
20.2 | a | C23 | 5 | |
20.2 | b | C23 | 4 | x |
20.2 | c | C23 | 9 |
这就是我的数据的样子,除了我希望获得的最后一列。我对三棵树(N=3)进行了采样,并从每棵树中提取了几种化合物,但在不同的日期,以了解比例如何随时间变化。
我想知道,在每个时间点,所有化合物的 C21 含量是多少 %mg。那么C21在13.1(3棵树平均)上的所有化合物中占多少比例,在20.1 aso上占多少比例。那么 C23 也是如此。
示例数据集:
Df <- data.frame(
rating = 1:12,
Date = c('13.1','13.1','13.1','20.2','20.2','20.2','13.1','13.1','13.1','20.2','20.2','20.2'),
Tree = c('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'),
Compound = c("C21","C21","C21","C21","C21","C21","C23","C23","C23","C23","C23","C23"),
Compound_mg = c(5, 4, 9, 6, 5, 10, 6, 6, 10, 5, 4, 9)
)
我试过这个...
Df2 <- Df %>%
group_by(Compound) %>%
mutate(perc = Compound(mg) / sum(Compound(mg))
但是我不知道如何对 3 棵树(a、b 和 c)进行平均,或者如何合并日期
library(dplyr)
Df |>
group_by(Date, Compound) |>
mutate(sum_c = sum(Compound_mg)) |>
ungroup() |>
group_by(Date) |>
mutate(sum_d = sum(Compound_mg), perc = sum_c/sum_d) |>
ungroup() |>
dplyr::summarise(.by = c(Date, Compound, perc)) |>
arrange(Date, perc)
#> # A tibble: 4 × 3
#> Date Compound perc
#> <chr> <chr> <dbl>
#> 1 13.1 C21 0.45
#> 2 13.1 C23 0.55
#> 3 20.2 C23 0.462
#> 4 20.2 C21 0.538
创建于 2024 年 11 月 14 日,使用 reprex v2.1.1.9000