Regex R每行中的gsub增量

Regex R每行中的gsub增量,regex,r,gsub,Regex,R,Gsub,我有一个文本文件,有10行。我需要使用gsub在每行中添加“n:”和增量值。我用的是R 这是我试过的 tst <- readLines("test.json") fix <- gsub("*}$", paste0(",\"n\":\"",1:10,"\"}"), tst) 我需要的是: a, n:1 b, n:2 c, n:3 ... and so on.. 我该怎么做 编辑: tst只需应用于要附加到gsub替换参数的整数列表: lapply(1:10, function(

我有一个文本文件,有10行。我需要使用gsub在每行中添加“n:”和增量值。我用的是R

这是我试过的

tst <- readLines("test.json")
fix <- gsub("*}$", paste0(",\"n\":\"",1:10,"\"}"), tst)
我需要的是:

a, n:1
b, n:2
c, n:3
... 
and so on.. 
我该怎么做

编辑:


tst只需应用于要附加到
gsub
替换参数的整数列表:

lapply(1:10, function(x) gsub("*}$", paste0(",\"n\":\"", x, "\"}"), tst))

谢谢大家的建议。我刚刚意识到我可以在每条推文上使用for循环

这就是我所做的:

tweet.tst <- readLines("ows.json")
tweet.test <- character()

for(i in 1:length(tweet.tst)){
  tweet.test[i] <- gsub("*}$", paste0(",\"n\":\"",i,"\"}"), tweet.tst[i])
}

tweet.tst尽管你的问题令人困惑,但以下几点对你有用

paste0(sub('}$', ',\"n\":\"', tst), 1:length(tst), '\"}')

@RichardScriven请查看编辑。
gsub
将不接受向量作为“替换”的参数。你刚刚编辑的R代码无效。@RichardScriven,我知道你的意思。这只是一个警告,意味着它不能增加。我刚刚意识到我可能无法用gsub一次性完成。因此,我围绕gsub编写了一个for循环,并以这种方式递增。抱歉给你添麻烦了。如果你有更好的解决方案,我会接受你的答案Great@GSee,现在我有点想知道我们在做什么,因为这个字符串在
jsonlite
中使用
fromJSON
进行完美解析,我看不到任何a或b等。“incremented”与“added”不同,为什么要支持
而不是
apply()
?@GSee,哈哈,这是test的原始问题。json只是我复制和创建的tweet的一个示例。在我让它工作后,我将文件名更改为原始名称。我知道,这很有趣。LOL申请并没有按顺序增加数字。我的输出在所有行上都是n:10。我最初接受你的回答,但在测试之后,我意识到它并不能满足我的需要。我认为你根本不需要一个循环<代码>粘贴
将按元素粘贴。例如
粘贴(字母[1:10],1:10)
。因此,如果您先删除坏的部分,然后在下一次调用时执行粘贴,我想您会没事的。您不是在替换
n:1
,而是在添加另一个
n
。这是你的本意吗?(从问题上看似乎不是这样)@RichardScriven是的,从外观上看。如果说“我想在我的json文本中添加一个元素”会更好解释@RichardScriven,LOL。可能是这样。这整件事让我很困惑。我正在做R中的map reduce,它完全把我甩了。此外,我得到的是,我确实需要追加,但也需要增加追加n的值。无论如何,这是有效的。所以我要闭嘴,读一本英语书,或者可能会再次把英语作为第二语言课@用户1828605-不用担心。我很高兴你的问题终于解决了:)
lapply(1:10, function(x) gsub("*}$", paste0(",\"n\":\"", x, "\"}"), tst))
tweet.tst <- readLines("ows.json")
tweet.test <- character()

for(i in 1:length(tweet.tst)){
  tweet.test[i] <- gsub("*}$", paste0(",\"n\":\"",i,"\"}"), tweet.tst[i])
}
paste0(sub('}$', ',\"n\":\"', tst), 1:length(tst), '\"}')