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])
}
}
我有一个向量,如果原始字符串少于 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])
}
}