R 如何根据标准向数据帧添加新的观察值?

R 如何根据标准向数据帧添加新的观察值?,r,tidyverse,R,Tidyverse,我有一个多时间段内多个站点的结果表(test.df)。其中一个土壤参数分为两个参数(滴滴涕2和滴滴涕4)。我想把这些加在一起,并将它们添加回数据帧中 我可以这样总结这些结果: test1 <- test %>% select(Sample,Site,Parameter,Value) %>% filter(str_detect(Parameter,"DDT")) test1 %>% group_by(Sample,Site) %>% cou

我有一个多时间段内多个站点的结果表(test.df)。其中一个土壤参数分为两个参数(滴滴涕2和滴滴涕4)。我想把这些加在一起,并将它们添加回数据帧中

我可以这样总结这些结果:

test1 <- test %>% 
  select(Sample,Site,Parameter,Value) %>% 
  filter(str_detect(Parameter,"DDT")) 

test1 %>% 
  group_by(Sample,Site) %>% 
  count(sum(Value))

 Sample         Site  Parameter      Value
   2014-01-27   3999  Soil 2,4'-DDT  0.010
   2014-01-27   3999  Soil 4,4-DDT   0.020
   2014-01-27   3999  Soil 4,4 EC    0.020
   2014-01-27   3999  Total DDT      0.030
   2013-01-31   4040  Soil 2,4'-DDT  0.010
   2013-01-31   4040  Soil 4,4-DDT   0.010
   2014-01-27   4040  Soil 4,4 EC    0.020
   2013-01-31   4040  Total DDT      0.020
我想对每个站点的滴滴涕值进行求和,并将其加回到表中,如下所示:

test1 <- test %>% 
  select(Sample,Site,Parameter,Value) %>% 
  filter(str_detect(Parameter,"DDT")) 

test1 %>% 
  group_by(Sample,Site) %>% 
  count(sum(Value))

 Sample         Site  Parameter      Value
   2014-01-27   3999  Soil 2,4'-DDT  0.010
   2014-01-27   3999  Soil 4,4-DDT   0.020
   2014-01-27   3999  Soil 4,4 EC    0.020
   2014-01-27   3999  Total DDT      0.030
   2013-01-31   4040  Soil 2,4'-DDT  0.010
   2013-01-31   4040  Soil 4,4-DDT   0.010
   2014-01-27   4040  Soil 4,4 EC    0.020
   2013-01-31   4040  Total DDT      0.020

我希望这种方法对您有用:

data<- data.frame(Sample= c("2014-01-27","2014-01-27","2013-01-01","2013-01-01"),
                  SiteID= c(3999,3999,4040,4040),      
                  DetDesc= c("Soil 2,4-DDT", "Soil 4,4-DDT","Soil 2,4-DDT", "Soil 4,4-DDT"),
                  Value= c(0.010, 0.02, 0.010, 0.01)
                  )
library(dplyr)
data %>% group_by(SiteID, Sample) %>% 
  summarise(Value = sum(Value)) %>%mutate(DetDesc = "Total DDT")%>%
  select(Sample, SiteID, DetDesc, Value ) %>% bind_rows(data)
# A tibble: 6 x 4
# Groups:   SiteID [2]
  Sample     SiteID DetDesc      Value
  <fct>       <dbl> <chr>        <dbl>
1 2014-01-27   3999 Total DDT     0.03
2 2013-01-01   4040 Total DDT     0.02
3 2014-01-27   3999 Soil 2,4-DDT  0.01
4 2014-01-27   3999 Soil 4,4-DDT  0.02
5 2013-01-01   4040 Soil 2,4-DDT  0.01
6 2013-01-01   4040 Soil 4,4-DDT  0.01
data%group\u by(SiteID,Sample)%>%
总结(值=总和(值))%%>%突变(DetDesc=“Total DDT”)%%>%
选择(示例、站点ID、DetDesc、值)%>%bind\u行(数据)
#一个tibble:6x4
#组:SiteID[2]
示例SiteID DetDesc值
1 2014-01-27 3999滴滴涕总量0.03
2 2013-01-01 4040滴滴涕总量0.02
3 2014-01-27 3999土壤2,4-DDT 0.01
4 2014-01-27 3999土壤4,4-DDT 0.02
5 2013-01-01 4040土壤2,4-DDT 0.01
6 2013-01-01 4040土壤4,4-DDT 0.01
如果您希望它也不按
Sample
列分组,只需将其删除即可。
干杯

谢谢你,查尔斯,效果很好。最初的df有许多我没有显示的其他列。我注意到,当我将_行绑定回我的原始df时,这些属性被分配了一个NA…有没有其他方法来保留这些信息?如果两种情况下的列数相同,并且两种情况下的colname相同,那么您就可以这样做。您可以先使用cbind()创建具有所需长度的向量,然后使用rbind()创建向量