#r
#r
Вопрос:
Например, я пытался выполнить цикл по числовому вектору:
s = c(1, 3, 7, 10, 12, 13)
и добавьте начальный 0 к элементу, если это число < 10. Остальное ничего не делает.
Желаемый результат: "00", "04", "07", "10", "12", "13"
К сожалению, я обновил только первый элемент:
[1] "01" "3" "7" "10" ...
for(i in 1:length(s)) {
if (s[i] < 10) {
s[i] <- sprintf("d", s[i])
}
}
Комментарии:
1. Вам не нужен цикл. Вы можете просто сделать
sprintf("d", s)
. Но почему 1 превратился в «00», а 3 превратился в «04» в вашем примере?2. Если вы помещаете одно символьное значение в числовой вектор, то весь вектор преобразуется в символ.
3. @MrFlick извините, это, очевидно, должно быть: «01», «03», «07» и так далее. Большое спасибо, ваше решение работает просто отлично!