繁体   English   中英

在 R 中按样本名称和日期进行数据框分析

[英]Dataframe analysis by sample name and date in R

我有一个地下水样本结果的数据框。 该表可能如下所示:

井号 抽样日期 化合物 结果
一个 2020-01-01 一个 0.5
一个 2020-01-01 b 0.3
一个 2020-01-01 一个 0.6
一个 2020-07-01 C 0.1
一个 2020-07-01 C 0.1
一个 2020-07-01 C 0.4
2020-02-01 一个 0.1
2020-08-01 C 0.1

现在,我想分析每个井和每个采样日期的数据。 具体来说,我想确定这些孔中是否有至少 2 种化合物在同一天测量的结果超过 0.2。

如果是,我想存储此信息。 因此,在此示例中,A 井有 3 个化合物,在 2020 年 1 月 1 日的值超过 0.2。 所以存储的信息应该类似于:

一个 2020-01-01 -> 真的

A 2020-07-01 -> 错误

B 2020-02-01 -> 错误

B 2020-08-01 -> 错误

我的表有数千行和非线性数据间隔。 因此,测量的时间和数量因每口井而异。

我怎样才能浏览数据并进行分析并存储它? 我尝试使用 split 函数将集合按日期和井号拆分为较小的集合。 但我现在并没有真正如何使用输出格式。 另外,我记得在 python 中,我认为我用循环函数做了类似的事情(for i in ...)。 这也适用于R吗? 如果是,如何?

非常感谢您阅读我的问题:)

您可以检查每组的all值是否每个case_when都高于 0.2。 您可以使用以下代码:

library(dplyr)
df %>%
  group_by(Sampling_date) %>%
  mutate(info = case_when(all(Result > 0.20) ~ "true", TRUE ~ "false"))

输出:

# A tibble: 8 × 5
# Groups:   Sampling_date [4]
  Well_Number Sampling_date Compound Result info 
  <chr>       <chr>         <chr>     <dbl> <chr>
1 A           2020-01-01    a           0.5 true 
2 A           2020-01-01    b           0.3 true 
3 A           2020-01-01    a           0.6 true 
4 A           2020-07-01    c           0.1 false
5 A           2020-07-01    c           0.1 false
6 A           2020-07-01    c           0.4 false
7 B           2020-02-01    a           0.1 false
8 B           2020-08-01    c           0.1 false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM