相关疑难解决方法(0)

R:找到字符串中的最后一个点

在R中,是否有比下面找到字符串中最后一个点的位置更好/更简单的方法?

x <- "hello.world.123.456"
g <- gregexpr(".", x, fixed=TRUE)
loc <- g[[1]]
loc[length(loc)]  # returns 16
Run Code Online (Sandbox Code Playgroud)

这会找到字符串中的所有点,然后返回最后一个点,但它看起来相当笨拙.我尝试使用正则表达式,但没有走得太远.

regex r

45
推荐指数
3
解决办法
3万
查看次数

在第一个冒号处拆分字符串

我正在使用文本格式读取数据文件readLines.第一个"列"是我不需要的复杂文本.下一列包含我需要的数据.第一个"列"和数据用冒号(:)分隔.我希望在第一个冒号处拆分每一行并删除生成的文本字符串,仅保留数据.

下面是一个示例数据文件.一个潜在的复杂因素是一行数据包含多个冒号.这条线可能在某些时候成为我的标题.所以,我可能不应该在每个结肠处分开,只是在第一个结肠处.

my.data <- "first string of text..:  aa : bb : cc 
            next string ........  :   2    0    2
            third string......1990:   7    6    5
            last string           :   4    2    3"

my.data2 <- readLines(textConnection(my.data))
my.data2
Run Code Online (Sandbox Code Playgroud)

我试过这里提供的代码:

在字符串中的第一个逗号上拆分

和这里:

R:从字符串中删除最后三个点

上面第一个链接的代码似乎只在第一行的第一个冒号处分开.第二个链接的代码可能会做我想要的,但对我来说太复杂到目前为止无法成功修改它.

这是我希望获得的数据,此时我可以使用一个非常简单的gsub语句简单地用空格替换第一行中剩余的冒号:

   aa : bb : cc 
    2    0    2
    7    6    5
    4    2    3
Run Code Online (Sandbox Code Playgroud)

很抱歉,如果这是我未找到的帖子的副本,感谢您提供任何建议或帮助.

regex string r gsub

6
推荐指数
1
解决办法
3831
查看次数

替换字符串的前N个点

我希望my.string用14个零替换前14个点region = 2.所有其他点应该保持原样.

df.1 = read.table(text = "
  city  county  state region                        my.string reg1 reg2
   1      1        1      1    123456789012345678901234567890   1    0
   1      2        1      1    ...................34567890098   1    0
   1      1        2      1    112233..............0099887766   1    0
   1      2        2      1    ..............2020202020202020   1    0
   1      1        1      2    ..............00..............   0    1
   1      2        1      2    ..............0987654321123456   0    1
   1      1        2      2    ..............9999988888777776   0    1
   1      2        2      2    ..................555555555555   0    1
", sep = "", header …
Run Code Online (Sandbox Code Playgroud)

string r

6
推荐指数
1
解决办法
312
查看次数

标签 统计

r ×3

regex ×2

string ×2

gsub ×1