用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
的一个)