您好我正在尝试使用向量中可用的新值替换#Table1和#Table2之间的值,该向量的长度与两个表之间的位数相同(3)。同样,我必须替换#Table2和#Table3以及#Table3和#Done之间的值。我的文件看起来像这样
"#start"
"x"
"y"
"#Table1"
"100"
"123"
"234"
"#Table2"
"3.4"
"9.4"
"#Table3"
"12"
"1"
"#Done"
我尝试使用gsub函数使用正则表达式来替换#Table1和#之间的内容,但它对我来说不起作用。
new_val=c(1,2,3) #new values which will replace original values
new_file=gsub("(#Table1).*?(#)",as.character(new_val), orig_file)
我也尝试了其他几个相关的函数,但似乎它们只解析一个特定的行而不是多行。我非常感激如果有人能提供一些见解。由于
输出应该看起来像
"#start"
"x"
"y"
"#Table1"
"1"
"2"
"3"
"#Table2"
"3.4"
"9.4"
"#Table3"
"12"
"1"
"#Done"
答案 0 :(得分:0)
由于每行都是单独存储的,所以不要使用字符串操作。您只需直接替换相应的值:
t_id<-grep('#Table1',orig_file)
new_val<-c(1:3)
nval<-length(new_val)
new_file<-orig_file
new_file[t_id+(1:nval)]<-new_val
根据需要进行优化