Это работа spintf
:
decimals <- nchar(d) - nchar(floor(d)) - 1
sprintf(paste0("%i, %i, ", "%.", decimals, "f"), a, b, d)
[1] "1, 5, 1.32421" "2, 6, 1.42342134123" "3, 7, 21.4123412361"
[4] "4, 8, 1.123412346"
Если вам нужен результат в виде вектора длины = длина (a) + длина (b) + длина (d):
unlist(strsplit(sprintf(paste0("%i,%i,", "%.", decimals, "f"), a, b, d), ","))
[1] "1" "5" "1.32421" "2"
[5] "6" "1.42342134123" "3" "7"
[9] "21.4123412361" "4" "8" "1.123412346"
Вы можете использовать "%s"
(т.е. sprint("%s, %s, %s", a, b, d)
) вместо "%i"
и "%f"
, если вы обрабатываете элементы как символы.