Hello,

Here is a pipe to replace based on the composite condition.
It uses ?base::replace with an integer index vector.

In the end, filter is meant to show the changed value in context, remove it and assign the data.frame or tibble back to the input to change the original.


library(dplyr)

data(coronavirus, package = "coronavirus")

coronavirus %>%
  select(country, date, type, cases) -> covid

covid %>%
  mutate(cases = replace(cases,
                         which(country == 'Namibia' &
                                 date == '2021-10-23' &
                                 cases == 357), NA)
  ) %>%
  filter(
    country == 'Namibia',
    date >= '2021-10-22' & date <= '2021-10-24'
  )


Hope this helps,

Rui Barradas

Às 16:49 de 25/10/21, Dr Eberhard W Lisse escreveu:
Rui,

that works for me too, but is not what I need to do.

I want to make the 'cases' value for this particular country AND this
particular date AND this particular type AND this particular value (ie
ALL conditions must be fulfilled) become NA so that the tibble would
change from

     [...]
     2 Namibia 2021-10-24 death         4
     3 Namibia 2021-10-23 confirmed   357
     4 Namibia 2021-10-23 death         1
     [...]

to

     [...]
     2 Namibia 2021-10-24 death         4
     3 Namibia 2021-10-23 confirmed   357
     4 Namibia 2021-10-23 death         1
     [...]

as long as they don't fix the dataset, and if/when they do it goes to
the expected 23 value :-)-O

greetings, el

On 2021-10-25 17:26 , Rui Barradas wrote:
 > Hello,
 >
 > The following works with me.
 >
 >
 > library(coronavirus)
 > library(dplyr)
 >
 > data(coronavirus, package = "coronavirus")
 > #update_dataset(silence = FALSE)
 >
 > coronavirus %>%
 >    select(country, date, type, cases) %>%
 >    filter(
 >      country == 'Namibia',
 >      date == '2021-10-23',
 >      cases == 357
 >    )
 >
 >
 >
 > Can you post the pipe code you are running?
 >
 > Hope this helps,
 >
 > Rui Barradas
 >
 > Às 12:25 de 25/10/21, Dr Eberhard W Lisse escreveu:
 >> Hi,
 >>
>> I have data from JHU via the 'coronavirus' package which has a value for
 >> the confirmed cases for 2021-10-23 which differs drastically (357) from
 >> what is reported in country (23).
 >>
 >>      # A tibble: 962 × 4
 >>        country date       type      cases
 >>        <chr>   <date>     <chr>     <int>
 >>      1 Namibia 2021-10-24 confirmed    23
 >>      2 Namibia 2021-10-24 death         4
 >>      3 Namibia 2021-10-23 confirmed   357
 >>      4 Namibia 2021-10-23 death         1
 >>      5 Namibia 2021-10-22 confirmed    30
 >>      6 Namibia 2021-10-22 death         1
 >>      # … with 956 more rows
 >>
 >> I am using a '%>%' pipeline and am struggling to mutate 'cases' to NA
 >> using something like
 >>
 >>      country == 'Namibia' & date == '2021-10-23' & cases == 357
 >>
 >> so that if or when the data-set is corrected I don't have to change the
 >> code (immediately), even after some googling.
 >>
 >> I can do
 >>
 >>      cases == 357
 >>
 >> only, but that could find other cases as well, which is obviously not
 >> the thing to do
 >>
 >> Any suggestions?
 >>
 >> greetings, el
 >>
 >> ______________________________________________
 >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
 >> https://stat.ethz.ch/mailman/listinfo/r-help
 >> PLEASE do read the posting guide
 >> http://www.R-project.org/posting-guide.html
 >> and provide commented, minimal, self-contained, reproducible code.
 >

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to