R: Создание новой строки на основе предыдущих строк - PullRequest
1 голос
/ 06 марта 2019

Я новичок в R и пытаюсь создать новую строку на основе значений в предыдущих строках.

Пример данных:

df <- data.table(Item = c("a", "b", "c", "d"),
                 "2010FY" = c(3, 5, 2, 2),
                 "2011FY" = c(5, 6, 2, 1),
                 "2012FY" = c(-1, 2, 2, 0.5))

Я хотел бы создать новую строку, которая делит 3-й ряд на 4-й ряд. Давайте назовем этот пункт «е», и в идеале он должен выглядеть так:

    Item     2010FY     2011FY     2012FY
1     a        3          5          -1
2     b        5          6           2
3     c        2          2           2
4     d        2          1          0.5
5     e        1          2           4

Используя dplyr, моя первая попытка:

 df <- bind_rows(df, e = df[Item %in% "c", ] / df[Item %in% "d", ])

Это не работает, потому что символы не делятся (т. Е. Столбец Item).

Я обнаружил, что функция mutate_if будет работать, но только по столбцам. Есть ли способ, которым я могу сделать это по строке?

Большое спасибо.

1 Ответ

3 голосов
/ 06 марта 2019

Как указано в комментариях выше, это сработало:

rbind(df, c(Item="e", df[df$Item == "c", -1] / df[df$Item == "d", -1])) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...