Команда Mutate делает несколько столбцов вместо одного столбца - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь использовать mutate для создания нового столбца, но вместо одного я получаю 7.

Output<-Total.Cancer%>%
  gather(Cancer,Total)%>%
  bind_cols(D.Total)%>%
  bind_cols(Death.Total)%>%
  mutate(Non.D.Total=Total-D.Total)

И я получаю вывод, который создает несколько столбцов Non.D.Total

     Cancer  Total Total.D   Non D Deaths   D Deaths   Non.D.Total.   Non.D.Total.  
1  Cancer 1  11111       111           1111         11          11111          11111
2  Cancer 2  111111      1111          11111        111         111111         111111
3  Cancer 3 111111      1111          11111        111         111111         111111
4  Cancer 4  11111       111           1111         11          11111          11111
5  Cancer 5  11111       111           1111         11          11111          11111
6  Cancer 6  11111       111           1111         11          11111          11111
7  Cancer 7 111111      1111          11111        111         111111         111111
  Non.D.Total. Non.D.Total. Non.D.Total. Non.D.Total. Non.D.Total.
1          11111          11111          11111          11111          11111
2         111111         111111         111111         111111         111111
3         111111         111111         111111         111111         111111
4          11111          11111          11111          11111          11111
5          11111          11111          11111          11111          11111
6          11111          11111          11111          11111          11111
7         115418         115418         115418         115418         115418

Мне не нужны лишние шесть столбцов.Я полагаю, что это из-за команды сбора, сопровождаемой мутацией, но я не уверен.

1 Ответ

0 голосов
/ 07 июня 2018

Вам нужно изменить имя столбца, а не тот фрейм данных, который вы добавляете.Ниже приведен игрушечный пример, в котором я пытаюсь добавить SN для всех фреймов данных.

DF1 <- data.frame("SN" = 1203:1208)
DF2 <- data.frame("SN" = 1203:1208)

DF1 %>% bind_cols(DF2) %>% mutate(sum = DF1 + DF2)
     SN  SN1 sum. sum. sum. sum. sum. sum.
 1 1203 1203 2406 2406 2406 2406 2406 2406
 2 1204 1204 2408 2408 2408 2408 2408 2408

DF1 %>% bind_cols(DF2) %>% mutate(sum = SN + SN1)
    SN  SN1  sum
 1 1203 1203 2406

Мне не ясно, каков ваш желаемый результат, но что-то вроде этого может быть тем, что вам нужно (?):

Output<-Total.Cancer%>%
gather(Cancer,Total)%>%
bind_cols(D.Total)%>%
bind_cols(Death.Total)%>%
mutate(Non.D.Total=Total-Total.D)

Обратите внимание, что мы вызываем не фрейм данных, а столбец в фрейме данных, который мы хотим изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...