r - 在数字 <= 9 前面放一个 0 (r 中的 for 循环仅适用于最后一个实例)

标签 r for-loop gsub

我编写此代码是为了查找“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]
}

它仅适用于“region”中的最后一次出现,因此我认为我的 for 循环有问题,我只是不知道是什么。

最佳答案

只需将 for 循环替换为:

region[to.replace] <- replacement

关于r - 在数字 <= 9 前面放一个 0 (r 中的 for 循环仅适用于最后一个实例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431581/

相关文章:

R:根据一列值在另一列中的存在性生成虚拟变量

r - 使用 .id 使用 purrr::map_df 制作输入项列,无需复制命名向量的输入

mysql - 从 HTML 页面导入 JSONP 数据,然后导出到 CSV

r - Notepad++ 无法识别R语言

java - 使 System.Arraycopy 等同于函数

r - 在 R 中使用波浪号 (~) 和句号 (.)

r - 如何在循环运行时将for循环内的变量实时打印到控制台?

regex - 将数字与 R 中的文本分开

r - 如何在给定模式 R 的情况下清理我的数字条目?

string - Lua中^和gsub的使用