【发布时间】:2013-03-15 11:44:13
【问题描述】:
我写这个是为了找到“1:”到“9:”的任何实例,并将其替换为“01:”到“09:”,同时保持“10:”或更大的完整。这是一个示例脚本:
region = c("18:1-100","16:1-100","X:1-100","2:1-100","4:1-100")
to.replace=grep("^[[:digit:]]:", region)
replacement=grep("^[[:digit:]]:", region, value=T)
replacement=paste(0,replacement,sep="")
for (i in length(to.replace)){
region[to.replace[i]]=replacement[i]
}
它只适用于“区域”中的最后一次出现,因此我认为我的 for 循环有问题,我只是不知道是什么。
【问题讨论】:
-
你缺少 1: 在你的循环中,
for (i in length(to.replace))->for (i in 1:length(to.replace)) -
@Hemmo 请参阅
seq_len -
@Hemmo 非常感谢,这也有效!现在我觉得自己像个笨蛋!
-
@Roland 是的,当然也可以,只是想指出代码中的错误,而不是改进。 ;) 无论如何,alexwhan 的解决方案更好。