Как создать увеличивающуюся переменную с двумя переменными в R? - PullRequest
0 голосов
/ 28 мая 2020

Я хотел бы создать инкрементную переменную (Id1 или Id2) из ​​двух других переменных (Var1 и Var2).

Спасибо. Elod ie

EDIT (воспроизводимый пример для Аарона Монтгомери) Я хочу создать инкрементную переменную: «Id». Значение «Id» изменяется, если VarA является новым значением и , если VarB является новым значением. См., В частности, когда Id = 4 в ожидаемой таблице.

data_example <- data.table::fread("
VarA    VarB 
A1  B1    
A1  B2    
A1  B3 
A1  B4       
A2  B5   
A3  B6    
A4  B7   
A5  B7    
A5  B8   
A6  B9    
A7  B10    
A8  B10   
A9  B10")

Ожидаемая таблица

VarA    VarB    Id
A1  B1  1
A1  B2  1 
A1  B3  1  
A1  B4  1  
A2  B5  2
A3  B6  3 
A4  B7  4
A5  B7  4 
A5  B8  4
A6  B9  5  
A7  B10 6 
A8  B10 6
A9  B10 6

1 Ответ

0 голосов
/ 28 мая 2020

Вот одно из решений с использованием тидиверса

library(tidyverse)
data_example <- data.table::fread("
Var1    Var2    Id1 Id2
604211  1001    3   1
604211  1093    3   1
604211  1146    3   1
604211  1319    3   1
635348  1002    5   2
634849  1005    5   2
620861  1004    4   3
622281  1004    4   3
622281  1041    4   3
600044  1100    1   4
600049  1033    2   5
607692  1033    2   5
612595  1033    2   5")

data_example %>% 
  arrange(Var1,Var2) %>% 
  group_by(Var1) %>% 
  mutate(id1 = group_indices()) %>% 
  group_by(Var2) %>% 
  mutate(id2 = group_indices())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...