Я пытаюсь добавить букву суффикса, основанную на символьном значении другой переменной. Всякий раз, когда я вижу «e» в переменной категории, тогда идентификатор должен иметь три строки, такие как i_C, i_E и i_O. Это означает, что у этого идентификатора есть три измерения C, E и O. Вот почему я хочу иметь три строки этого конкретного i.
Вот пример данных:
id <- c("i1","i2","i3","i4","i5")
category <- c("a", "b", "c", "d", "e")
data <- data.frame("id"=id, "category"=category)
id category
1 i1 a
2 i2 b
3 i3 c
4 i4 d
5 i5 e
Я запустил этот код, но он мог выдавать только i1_A.
library(data.table)
setDT(data)
data[category == "e", id := paste0(id, "_", "A")]
> data
id category
1: i1 a
2: i2 b
3: i3 c
4: i4 d
5: i5_A e
То, что я хочу иметь:
> data
id category
1: i1 a
2: i2 b
3: i3 c
4: i4 d
5: i5_A e
6: i5_B e
7: i5_C e
Есть предложения?