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”诸如此类。非常感谢,您的解决方案非常有效!