Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在向量上循环只更新第一项_R - Fatal编程技术网

R 在向量上循环只更新第一项

R 在向量上循环只更新第一项,r,R,我试图循环一个数值向量,例如: s = c(1, 3, 7, 10, 12, 13) 如果项目是小于10的数字,则将前导0添加到该项目。否则什么也不做 理想输出:“00”、“04”、“07”、“10”、“12”、“13” 不幸的是,我只更新了第一项: [1]“01”“3”“7”“10”… for(i in 1:length(s)) { if (s[i] < 10) { s[i] <- sprintf("%02d", s[i]) } } for

我试图循环一个数值向量,例如:

s = c(1, 3, 7, 10, 12, 13)
如果项目是小于10的数字,则将前导0添加到该项目。否则什么也不做

理想输出:
“00”、“04”、“07”、“10”、“12”、“13”

不幸的是,我只更新了第一项:

[1]“01”“3”“7”“10”…

for(i in 1:length(s)) {
     if (s[i] < 10) {
        s[i] <- sprintf("%02d", s[i])
     }
 }
for(i/1:长度){
如果(s[i]<10){

s[i]您不需要循环。您只需执行
sprintf(“%02d”,s)
。但在您的示例中,为什么1变为“00”,3变为“04”?如果在数字向量中放入一个字符值,则整个向量将强制为字符。@MrFlick抱歉,它显然应该是:“01”、“03”、“07”诸如此类。非常感谢,您的解决方案工作得很好!您不需要循环。您只需执行
sprintf(“%02d”,s)
。但在您的示例中,为什么1变成“00”,3变成“04”?如果您在数字向量中放入一个字符值,那么整个向量将强制为字符。@MrFlick抱歉,它显然应该是:“01”、“03”、“07”诸如此类。非常感谢,您的解决方案非常有效!