Dplyr мутировать новый столбец в указанном месте - PullRequest
0 голосов
/ 03 июля 2018

Пример:

a = c(10,20,30)
b = c(1,2,3)
c = c(4,5,6)
d = c(7,8,9)
df=data.frame(a,b,c,d)

library(dplyr)

df_1 = df %>% mutate(a1=sum(a+1))

Как добавить «a1» после «a» (или любой другой определенной позиции), а НЕ в конце?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Другой вариант - add_column из tibble

library(tibble)    
add_column(df, a1 = sum(a + 1), .after = "a")
#   a a1 b c d
#1 10 63 1 4 7
#2 20 63 2 5 8
#3 30 63 3 6 9
0 голосов
/ 04 июля 2018

Функция mutate всегда добавляет вновь созданный столбец в конце. Однако мы можем отсортировать столбец по алфавиту после функции mutate, используя select.

library(dplyr)

df_1 <- df %>% 
  mutate(a1 = sum(a + 1)) %>%
  select(sort(names(.)))
df_1
#    a a1 b c d
# 1 10 63 1 4 7
# 2 20 63 2 5 8
# 3 30 63 3 6 9
...