подмножество тидир-спредов ключ-значение - PullRequest
0 голосов
/ 03 мая 2018

Учитывая данные примера, я бы хотел spread подмножество пар key-value. В данном случае это всего одна пара. Однако есть и другие случаи, когда подмножество spread является более чем одной парой.

library(tidyr)
# dummy data
> df1 <- data.frame(e = c(1, 1, 1, 1),
              n = c("a", "b", "c", "d") ,
              s = c(1, 2, 5, 7))
> df1
  e n s
1 1 a 1
2 1 b 2
3 1 c 5
4 1 d 7

Классический разброс всех пар ключ-значение:

> df1 %>% spread(n,s)

  e a b c d
1 1 1 2 5 7

Желаемый выход, только спред n=c

  e c n s
1 1 5 a 1
2 1 5 b 2
3 1 5 d 7

1 Ответ

0 голосов
/ 03 мая 2018

Мы можем сделать gather после spread

df1 %>%
  spread(n, s) %>% 
  gather(n, s, -c, -e)
#  e c n s
#1 1 5 a 1
#2 1 5 b 2
#3 1 5 d 7

Или вместо spread/gather мы filter без строки 'c', а затем mutate, чтобы создать столбец 'c' с подмножеством 's', которое соответствует 'c'

df1 %>% 
   filter(n != "c") %>% 
   mutate(c = df1$s[df1$n=="c"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...