создать столбцы со всеми комбинациями идентификаторов с одинаковыми именами - PullRequest
0 голосов
/ 13 марта 2020

У меня есть данные как ниже,

no   field
1   aa
3   aa
4   bb
6   dd
8   dd
10  dd
91  ee
75  ee
42  ee
31  ee
85  yy
34  yy
50  yy
60  jj
61  jj

Я хочу сделать комбинации "нет" для того же поля. Желаемый выход ниже.

no  field               
1   aa  1   3       
3   aa  3   1       
4   bb  4   6   8   10
6   dd  6   4   8   10
8   dd  8   10      
10  dd  10  8       
91  ee  91  75  42  31
75  ee  75  91  42  31
42  ee  42  91  75  31
31  ee  31          
85  yy  85  34  50  
34  yy  34  85  50  
50  yy  50  85  34  
60  jj  60  61      
61  jj  61  60      

1 Ответ

1 голос
/ 13 марта 2020

Вы можете сделать:

library(dplyr)
library(purrr)

df %>%
  group_by(field) %>%
  mutate(x = map_chr(seq_along(no), function(x) paste(c(no[x], no[-x]), collapse = " ")))

# A tibble: 15 x 3
# Groups:   field [6]
      no field x          
   <int> <chr> <chr>      
 1     1 aa    1 3        
 2     3 aa    3 1        
 3     4 bb    4          
 4     6 dd    6 8 10     
 5     8 dd    8 6 10     
 6    10 dd    10 6 8     
 7    91 ee    91 75 42 31
 8    75 ee    75 91 42 31
 9    42 ee    42 91 75 31
10    31 ee    31 91 75 42
11    85 yy    85 34 50   
12    34 yy    34 85 50   
13    50 yy    50 85 34   
14    60 jj    60 61      
15    61 jj    61 60   
...