Как складывать данные, удаляя дубликаты в R? - PullRequest
1 голос
/ 23 января 2020

У меня есть следующие данные:

df1<-read.table(text=" Id	Cost	Type	T1_MOT1_2	T2_NOT3_4
   M	100	MOT2	N	N
12	120	MOT3	N	N
23	100	MOT2	N	N
11	111	MOT1	Y	N
N	33	MOT4	N	N
14	44	MOT2	N	N
Q	77	MOT3	N	N
P	96	MOT3	N	N
Z	90	MOT1	Y	N
P	34	MOT3	N	N
H	19	MOT4	N	Y
B	23	MOT2	Y	N

    ",header=TRUE)

Я хочу получить следующую таблицу

Id	Cost	Type	T1_MOT1_2	T2_NOT3-4
M	100	MOT2	N	N
23	100	MOT2	N	N
11	111	MOT1	Y	N
14	44	MOT2	N	N
Z	90	MOT1	Y	N
B	23	MOT2	Y	N
H	19	MOT4	N	Y

Первый шаг, я хочу получить данные, относящиеся к MOT1 и MOT2 (коды M, 23, 11 и 14). Второй шаг, я хочу добавить данные на основе T1_MOT1_2 и T2_NOT3-4. Если я вижу «Y» в обоих (для T1_MOT1_2 я получу коды 12 и Q, а для T2_NOT3-4 я получу N. Важное замечание: если данные уже были выбраны на первых этапах, я НЕ хочу повторять их в результате.

Я могу сделать первый шаг, используя это:

subset(df1, Type == 'MOT1'| Type== 'MOT2')

Однако я не смог получить ожидаемый результат. Можем ли мы сделать это?

1 Ответ

0 голосов
/ 23 января 2020

Исходя из ожидаемого, кажется, что мы хотим установить под «Type» значение «MOT1», «MOT2» или остальную часть «Type» на основании другого условия

subset(df1, (Type == 'MOT1'| Type== 'MOT2')|
       (!(Type %in% c('MOT1', 'MOT2'))) & (T2_NOT3_4 == 'Y'|T1_MOT1_2  == 'Y'))
#    Id Cost Type T1_MOT1_2 T2_NOT3_4
#1   M  100 MOT2         N         N
#3  23  100 MOT2         N         N
#4  11  111 MOT1         Y         N
#6  14   44 MOT2         N         N
#9   Z   90 MOT1         Y         N
#11  H   19 MOT4         N         Y
#12  B   23 MOT2         Y         N
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...