r data.table - tstrsplit 函数 - 当列以匹配字符串开头时第一列为空

r data.table - tstrsplit function - first column is blank when column starts with matching string

我正在尝试按如下方式拆分字符串

x <- data.table(VAROLD=c('DBA','ADB'))
x[, paste0('VARNEW_', 1:2) := tstrsplit(VAROLD, 'D', fixed=T)][]

我得到如下输出想看看我是否可以避免生成第一列空白。我只查看使用 data.table 包的选项。

VAROLD VARNEW_1 VARNEW_2
1: DBA BA
2: ADB A B

然后,当 'D' 作为第一个字符

出现时,我们可能需要进行一些子字符串移位
x[, paste0('VARNEW_', 1:2) := tstrsplit(sub("^(D)(.*)", "\2\1", 
      VAROLD), "D", fixed = TRUE)][]

-输出

  VAROLD VARNEW_1 VARNEW_2
1:    DBA       BA     <NA>
2:    ADB        A        B

或者如果它只是初始的 'D',那么在进行拆分之前将其删除

x[, paste0('VARNEW_', 1:2) := tstrsplit(sub("^D+", "", 
       VAROLD), "D", fixed = TRUE)][]
   VAROLD VARNEW_1 VARNEW_2
1:    DBA       BA     <NA>
2:    ADB        A        B