Hello,
This may be basic, but...I have data on one column and I want to subtract some of those data from data in the same column, based on site and date (so I want to subtract today's number from site A from today's data from site B). I am flummoxed and would greatly appreciate any help. Thanks!
Very simplified version of the really long dataframe:
date site number
2/28/18 A 16
2/28/18 B 22
You can do it with tidyr
by spreading your site
to columns and then getting what you need:
library(tidyverse)
df <- tibble::tribble(
~date, ~site, ~number,
"2018-02-28", "A", 16,
"2018-02-28", "B", 22
)
df %>%
tidyr::spread(key = site, value = number) %>%
dplyr::mutate(diff = B - A)
# A tibble: 1 x 4
date A B diff
<chr> <dbl> <dbl> <dbl>
1 2018-02-28 16.0 22.0 6.00
2 Likes
Thanks, I will try that!
site<-c("A", "B")
value<-c(16, 22)
date <- as.Date(c('2018-3-7','2018-3-7'))
data<- data.frame(date, site, value)
date_q<-Sys.Date()
data$value_opps[data$date == date_q & data$site == 'A']<- data$value[data$date == date_q & data$site == 'A' ] - data$value[data$date == date_q & data$site == 'B' ]
#replace NA with 0
data$value_opps[is.na(data$value_opps)]<- 0
hope this answers your question
Thanks, let me try this!