用R语言提取字符和符号

用R语言提取字符和符号,r,substring,R,Substring,我有一个列,上面有这些值 id count total SEXO EDAD IDENTIF_AFILIADO 1: 952815090_12_06_Q643 4 133.34 M 39 952815090 2: 952443257_10_17_C64 9 64.32 F 5 952443257 3: 931131767_9_10_C716 2 21.88

我有一个列,上面有这些值

                    id     count  total SEXO EDAD IDENTIF_AFILIADO
 1:  952815090_12_06_Q643     4 133.34    M   39        952815090
 2:   952443257_10_17_C64     9  64.32    F    5        952443257
 3:   931131767_9_10_C716     2  21.88    M    1        931131767
 4:   931131767_8_13_C716    15 173.70    M    1        931131767
 5:   931131767_1_09_C716     1  10.94    M    0        931131767

id列在第三个“\u”后面有一个代码。例如,第一行有“952815090_12_06_Q643”

我需要提取代码Q643

更具体地说,是指每行第三个“\u1”之后的一组字符。如何使用R执行它?

这应该可以做到:


您的.ids应该可以:



your.ids使用正则表达式:

gsub(“^.*..*..*.*.(.*)$”,“\\1”,id)

使用正则表达式:

gsub(“^.*..*..*.*.(.*)$”,“\\1”,id)

您可以删除所有内容,直到最后一个下划线

sub('.*_', '', df$id)
#[1] "Q643" "C64"  "C716" "C716" "C716"
数据

df <- structure(list(id = c("952815090_12_06_Q643", "952443257_10_17_C64", 
"931131767_9_10_C716", "931131767_8_13_C716", "931131767_1_09_C716"
), count = c(4L, 9L, 2L, 15L, 1L), total = c(133.34, 64.32, 21.88, 
173.7, 10.94), SEXO = c("M", "F", "M", "M", "M"), EDAD = c(39L, 
5L, 1L, 1L, 0L), IDENTIF_AFILIADO = c(952815090L, 952443257L, 
931131767L, 931131767L, 931131767L)), 
class = "data.frame", row.names = c(NA, -5L))

df您可以删除所有内容,直到最后一个下划线

sub('.*_', '', df$id)
#[1] "Q643" "C64"  "C716" "C716" "C716"
数据

df <- structure(list(id = c("952815090_12_06_Q643", "952443257_10_17_C64", 
"931131767_9_10_C716", "931131767_8_13_C716", "931131767_1_09_C716"
), count = c(4L, 9L, 2L, 15L, 1L), total = c(133.34, 64.32, 21.88, 
173.7, 10.94), SEXO = c("M", "F", "M", "M", "M"), EDAD = c(39L, 
5L, 1L, 1L, 0L), IDENTIF_AFILIADO = c(952815090L, 952443257L, 
931131767L, 931131767L, 931131767L)), 
class = "data.frame", row.names = c(NA, -5L))

df谢谢您的回答,但当我运行此代码时,我每行都收到了Q643 en。我需要得到第一排的C64,第二排的C64。。。。。etccI在我的答案的第一个版本中有一个bug,请确保您使用的是当前代码。(使用
tstrsplit
)谢谢您的回答,但当我运行此代码时,我每行都收到了Q643 en。我需要得到第一排的C64,第二排的C64。。。。。etccI在我的答案的第一个版本中有一个bug,请确保您使用的是当前代码。(使用
tstrsplit
的一个)