R:不能在 for 循环中使用 paste0 函数

R: Can't use paste0 function within a for loop

我有一个向量,如果原始字符串少于 3 个字符,我想在每个字符串的开头添加一个“0”。

for(i in 1:93){
  if(nchar(a[i]) < 3){
    paste0("0", a[i])
  }
}

如果我运行上面的代码,我得到一个“NULL”作为结果。 奇怪的是,如果我 运行 没有 for 循环的代码(我的意思是单独)一切正常。

  if(nchar(a[11]) < 3){
    paste0("0", a[11])
  }

如果您对正在发生的事情有所了解,那将对我很有帮助。也非常欢迎任何其他方法来解决这个问题。 感谢您的时间和帮助:)

我们这里不需要循环。这可以通过 sprintf 直接在 vector

上完成
sprintf('%03d', a)

在循环中,没有对原始向量元素进行赋值,也没有 print,因此它没有 return 任何东西

a <- as.character(a)
for(i in 1:93){
  if(nchar(a[i]) < 3){
    a[i] <- paste0("0", a[i])
  }
}