1

Given this data.table

DT = data.table(item=c("item1 - description one", "item2 - description two", "item3 - description three"), sales=1:3)

DT
                        item sales
1:   item1 - description one     1
2:   item2 - description two     2
3: item3 - description three     3

How can I easily get output that looks like

      code sales
1:   item1     1
2:   item2     2
3:   item3     3

Probably very easy but thanks in advance.

Martyn
  • 55
  • 6

1 Answers1

1

You can do this:

DT[, item:=gsub(item, pattern=" - [a-zA-Z ]+", replacement="")]
setnames(DT, "item", "code")

#    code sales
#1: item1     1
#2: item2     2
#3: item3     3
Rafael Toledo
  • 974
  • 13
  • 19