Я пытаюсь добавить новый столбец во фрейм данных, но сталкиваюсь с некоторой проблемой, так как мой ход мыслей, похоже, не работает.
Мой вопрос основан на country-aggregated.csv из это источник GitHub.
Взглянув на голову, он показывает:
Что бы я хотел чтобы сделать, это добавить новый столбец с описанием новых смертей на этот день. Это рассчитывается путем взятия Смертей того дня за вычетом Смертей предыдущего дня.
Моя идея состояла в том, чтобы создать копию и использовать ее в качестве ссылки. Вот так:
tb_copy <- tb
tb <- tb %>% mutate(newDeaths = tb_copy %>% filter(tb_copy$Country == tb$Country) %>% filter(tb_copy$Date == tb$Yesterday) %>% pull(Deaths))
Это не работает, не во всех странах ежедневно регистрируется число погибших. Например, Нидерланды, кажется, в наборе данных каждый день. Как я могу принять это во внимание и сделать так, чтобы оно вычитало не количество смертей за предыдущий день, а количество последней вставки для этой страны?
Ошибка с использованием приведенного выше кода:
Error: Column `newDeaths` must be length 175 (the number of rows) or one, not 0
In addition: Warning message:
Incompatible methods ("Ops.factor", "==.Date") for "=="
Редактировать: мне пришлось отредактировать код в этом вопросе, так как я нашел в нем ошибку, из-за которой он работал без ошибок.