У меня есть эти данные:
library(dplyr)
df1 <- tibble(
type = c("Animals", "Animals", "People", "People"),
type_group = c("Dogs", "Cats", "John", "Jane"),
analysis1 = c(32.7, 67.5, 34.6, 56.5),
analysis2 = c(23.7, 89.4, 45.8, 98.6),
analysis3 = c(45.7, 45.7, 23.6, 23.6),
analysis4 = c(14.4, 45.4, 98.0, 12.2))
Я хотел бы добавить несколько новых строк к данным, чтобы они выглядели так:
df2 <- tibble(
type = c("Animals", "Animals", "Animals diff", "People", "People", "People diff"),
type_group = c("Dogs", "Cats", "Dogs and cats" ,"John", "Jane", "John and Jane"),
analysis1 = c(32.7, 67.5, 34.8, 34.6, 56.5, 21.9),
analysis2 = c(23.7, 89.4, 65.7, 45.8, 98.6, 52.8),
analysis3 = c(45.7, 45.7, 0.0, 23.6, 23.6, 0.0),
analysis4 = c(14.4, 45.4, 31.0, 98.0, 12.2, 85.8))
Новые строки озаглавлены 'Animals diff ', то есть фигуры кошек минус фигура собак. Точно так же есть новый ряд, который называется «Разница в людях», то есть цифры Джейн минус цифры Джона.
Я знаю, что простой способ сделать это - использовать dplyr
, добавить новые строки в качестве переменных и сделать данные шире, а не длиннее. Однако этот формат не будет работать для того, что я хочу сделать с данными. В частности, он должен быть в этом более длинном формате, как показано в df2.
Я подумал, что могу создать переменные, используя mutate
в dplyr
, чтобы сделать данные шире, а затем использовать reshape
, чтобы сделать данные длинными, но после игры я не могу думатькак это сделать. Любые идеи о том, как я могу добраться до df2?
Спасибо