Вопрос
Я регулярно использую данные временных рядов. Иногда я хотел бы преобразовать весь фрейм данных, чтобы получить некоторый фрейм данных о темпах роста или долях, например.
При использовании transmute
это относительно просто. Но когда мне нужно преобразовать много столбцов и я хочу сохранить столбец даты, я не уверен, возможно ли это.
Ниже, с использованием набора данных economics
, приведен пример среднее.
Пример
library(dplyr)
economics %>%
transmute(date,
pce * 10,
pop * 10,
psavert * 10)
# A tibble: 574 x 4
date `pce * 10` `pop * 10` `psavert * 10`
<date> <dbl> <dbl> <dbl>
1 1967-07-01 5067 1987120 126
2 1967-08-01 5098 1989110 126
3 1967-09-01 5156 1991130 119
4 1967-10-01 5122 1993110 129
5 1967-11-01 5174 1994980 128
6 1967-12-01 5251 1996570 118
7 1968-01-01 5309 1998080 117
8 1968-02-01 5336 1999200 123
9 1968-03-01 5443 2000560 117
10 1968-04-01 5440 2002080 123
# ... with 564 more rows
Теперь, используя transmute_at
. Нижеприведенное предсказуемо удаляет date
в аргументе .vars
, но я не нашел способа удалить date
и повторно ввести его в .funs
так, чтобы результирующий кадр данных выглядел так же, как и выше. Есть идеи?
economics %>%
transmute_at(.vars = vars(-c(date, uempmed, unemploy)),
.funs = list("trans" = ~ . * 10))
# A tibble: 574 x 3
pce_trans pop_trans psavert_trans
<dbl> <dbl> <dbl>
1 5067 1987120 126
2 5098 1989110 126
3 5156 1991130 119
4 5122 1993110 129
5 5174 1994980 128
6 5251 1996570 118
7 5309 1998080 117
8 5336 1999200 123
9 5443 2000560 117
10 5440 2002080 123
# ... with 564 more rows